Ergebnis 1 bis 5 von 5

CMD - Befehl ausführen mit C++

  1. #1 Zitieren
    Veteran Avatar von BillieJoe
    Registriert seit
    May 2005
    Ort
    Im Land der Berge ;)
    Beiträge
    580
    hallo leute, ich würde gerne einen cmd befehl mit einem klick auf einen button in meinem c++ programm ausführen. in meinem fall zum beispiel "shutdown -s -f -t 3600"
    ich verwendete früher den Borland C++ Builder, bin aber auf Visual Studio umgestiegen. Im C++ Builder habe ich das mit
    Code:
    system("shutdown -s -f -t 4600");
    gelöst. aber wenn ich das im visual studio mache bekomme ich folgendes vom compiler:

    Code:
    1>------ Build started: Project: SystemManager, Configuration: Debug Win32 ------
    1>Build started 05.11.2012 16:04:03.
    1>InitializeBuildStatus:
    1>  Touching "Debug\SystemManager.unsuccessfulbuild".
    1>GenerateTargetFrameworkMonikerAttribute:
    1>Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files.
    1>ClCompile:
    1>  All outputs are up-to-date.
    1>  SystemManager.cpp
    1>c:\users\nico\documents\visual studio 2010\projects\systemmanager\systemmanager\Form1.h(127): error C3861: 'system': identifier not found
    1>
    1>Build FAILED.
    1>
    1>Time Elapsed 00:00:00.16
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
    Anscheinend kennt visual studio den befehl "system" nicht weiß einer von euch rat?

    mfg nico

    Edit: Hab rausgefunden, dass es mit #include <iostram> geht... keine ahnung warum...
    BillieJoe ist offline Geändert von BillieJoe (05.11.2012 um 15:15 Uhr)

  2. #2 Zitieren

    Batmanistrator
    Avatar von Thoronador
    Registriert seit
    Jul 2005
    Ort
    Morrowind, Vvardenfell-Distrikt
    Beiträge
    20.427
    Die Funktion system() findet man normalerweise im Header cstdlib, daher sollte man das Problem eigentlich mit
    #include <cstdlib>
    lösen können und nicht mit iostream.
    Thoronador ist offline

  3. #3 Zitieren
    Ritter Avatar von ojas
    Registriert seit
    Jun 2008
    Ort
    Erde
    Beiträge
    1.787
    Zitat Zitat von BillieJoe Beitrag anzeigen
    Edit: Hab rausgefunden, dass es mit #include <iostram> geht... keine ahnung warum...
    Weil deine Version von iostream die cstdlib einbindet. Das darf die iostream, muss es aber nicht. Jeder Compiler darf das selbst entscheiden.

    Korrekter ist es deshalb, wie Thoronador schon bemerkte, die cstdlib selbst explizit einzubinden.
    ojas ist offline

  4. #4 Zitieren
    Veteran Avatar von BillieJoe
    Registriert seit
    May 2005
    Ort
    Im Land der Berge ;)
    Beiträge
    580
    Zitat Zitat von ojas Beitrag anzeigen
    Weil deine Version von iostream die cstdlib einbindet. Das darf die iostream, muss es aber nicht. Jeder Compiler darf das selbst entscheiden.

    Korrekter ist es deshalb, wie Thoronador schon bemerkte, die cstdlib selbst explizit einzubinden.
    vielen dank für die antworten. habe im internet auch gelesen dass die windows.h datei für das zuständig sei :/ was hat es mit der auf sich?
    BillieJoe ist offline

  5. #5 Zitieren
    Ritter Avatar von ojas
    Registriert seit
    Jun 2008
    Ort
    Erde
    Beiträge
    1.787
    Die windows.h bietet Funktionen an, die integraler Bestandteil von Microsoft Windows sind. Diese Funktionen sind in anderen Betriebssystemen in der Regel nicht verfügbar.

    Entsprechend zu windows.h von Microsofts Betriebssystemen gibt es auf Betriebsystemen, die sich an POSIX orientieren (Unix, Linux) unistd.h und weitere Header-Dateien.

    Im Gegensatz dazu sollte cstdlib auf jedem System verfügbar sein, dass einen C++-Compiler anbietet, weil cstdlib zum von der ISO abgesegneten C++-Standard gehört.
    ojas ist offline Geändert von ojas (05.11.2012 um 15:58 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •