tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
334
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Guimaster Guimaster ist offline Mitglied
    Registriert seit
    Feb 2007
    Beiträge
    14
    Hallo Community,

    wie ihr schon sehen könnt bin ich sehr neu und habe auch direkt eine Frage. Ich hoffe ich bin dazu auch in der richtigen Sektion. Also es geht darum:

    Ich lerne gerade Visual C++ und habe auch ein nettes eBook gefunden. Ich bin an einem Beispiel, wo gezeigt wird, wie man ein externes Programm per ComboBox und einem"Programm Starten" Button startet. Es wird kein Fehler ausgegeben, aber es startet auch das Programm nicht. Es passiert gar nichts. Hier mal der Quellcode:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    
    void CSteuerelementeDlg::OnRunpgm() 
    {
    // Lokale Variable zur Aufnahme des Programmnamens deklarieren
     CString strPgmName;
     
    // Programmname in die lokale Variable kopieren
     strPgmName = m_strProgToRun;
     
    // Programmname in Großbuchstaben umwandeln
    strPgmName.MakeUpper();
     
     // Programm Paint gewählt?
    if (strPgmName == "PAINT")
     // Ja, Paint starten
     WinExec("C:\WINDOWS\system32\mspaint.exe", SW_SHOW);
     
    // Editor (Notepad) gewählt?
    if (strPgmName == "EDITOR")
     // Ja, Editor starten
     WinExec("notepad.exe", SW_SHOW);
     
    // Solitär gewählt?
     if (strPgmName == "SOLITÄR")
     // Ja, Solitär starten
     WinExec("sol.exe", SW_SHOW);
    }

    Jop also das ist die Funktion. Ich hoffe ihr könnt mir helfen, so das es funktioniert, denn ich will auch nciht weiter machen, ohne meinen Fehler zu finden. Die Variable ist korrektgesetzt, da ich den m_strProgToRun nicht nochmal zuordnen kann. Also VC++ gibtaus, dass die Variablen bereits zugeordnet sind. Ich wieß leider nicht mehr weiter.

    Mfg Guimaster
     

  2. #2
    Avatar von Endurion
    Endurion Endurion ist offline Mitglied Diamant
    Registriert seit
    Apr 2004
    Beiträge
    2.151
    Vermutlich werden die Dateien nicht gefunden.

    Benutze den Debugger. Prüfe, ob das Programm wirklich zu einem de WinExecs durchkommt. Wenn ja, lass dir nach dem Aufruf von WinExec mit GetLastError den Fehlercode zurückgeben. Der dürfte vermutlich 2 sein (File not found).

    Gib den kompletten Pfad für die Programme an.

    Bei mspaint hast du einen kleinen Fehler; wenn du Backslashes so im Programm eingibst, musst du zwei Backslashes hintereinander angeben:

    WinExec("C:\\WINDOWS\\system32\\mspaint.exe", SW_SHOW);
     

  3. #3
    Guimaster Guimaster ist offline Mitglied
    Registriert seit
    Feb 2007
    Beiträge
    14
    So hab grad ml den Debugger durchlaufen lassen und folgendes steht unten bei "Debug"

    Loaded 'ntdll.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\kernel32.dll', no matching symbolic information found.
    Loaded symbols for 'C:\WINDOWS\system32\MFC42D.DLL'
    Loaded symbols for 'C:\WINDOWS\system32\MSVCRTD.DLL'
    Loaded 'C:\WINDOWS\system32\gdi32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\user32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\imm32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\advapi32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\rpcrt4.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\mfc42loc.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\comctl32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\uxtheme.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\msvcrt.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\MSCTF.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\version.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\MSCTFIME.IME', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\ole32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2180_x-ww_a84f1ff9\comctl32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\shlwapi.dll', no matching symbolic information found.
    The thread 0xE8C has exited with code 2 (0x2).
    The program 'C:\Dokumente und Einstellungen\Günay\Desktop\VC++\Tests\Steuerelemente\Debug\Steuerelemente.exe' has exited with code 2 (0x2).
    kp was das heién soll und das mit dem backslash geht leider uch nicht wird einfach nciht gestartet.
     

  4. #4
    langer1801 langer1801 ist offline Mitglied Platin
    Registriert seit
    Jun 2005
    Ort
    Bad Arolsen (Hessen)
    Beiträge
    556
    Hi,

    setze mal einen Breakpoint auf

    strPgmName = m_strProgToRun;

    und schau dann im Einzelschritt, was danach passiert.
    Die Liste, die du hier präsentiert hast, zeigt nur, welche Module geladen wurden und sagt nichts aus, was wo passiert ist.

    Mfg

    langer
     

  5. #5
    Guimaster Guimaster ist offline Mitglied
    Registriert seit
    Feb 2007
    Beiträge
    14
    das hab ich schon gemcht bringt leider nix
     

  6. #6
    Avatar von Endurion
    Endurion Endurion ist offline Mitglied Diamant
    Registriert seit
    Apr 2004
    Beiträge
    2.151
    Wo kommt der ExitCode 0x02 her? Gibst du GetLastError am Ende der WinMain zurück?

    0x02 heisst "File not found". Da stimmt etwas mit den Pfaden/Dateinamen einfach nicht.
    Versuch mal ein ganz einfaches leeres Testprojekt, wo du nur den WinExec-Aufruf drin hast. Bastle da dran rum, bis es läuft.

    Das muss funktionieren:
    WinExec("C:\\WINDOWS\\system32\\mspaint.exe", SW_SHOW);
     

Ähnliche Themen

  1. C++ externes Programm starten+eingabe
    Von manu123 im Forum VisualStudio & MFC
    Antworten: 4
    Letzter Beitrag: 25.12.08, 00:12
  2. Externes Programm starten
    Von Monchichu im Forum Borland CBuilder und VCL
    Antworten: 1
    Letzter Beitrag: 08.11.07, 09:53
  3. Externes Programm starten
    Von Roland1 im Forum Delphi, Kylix, Pascal
    Antworten: 1
    Letzter Beitrag: 11.10.05, 08:43
  4. Externes Programm starten und terminieren
    Von JJB im Forum VisualStudio & MFC
    Antworten: 9
    Letzter Beitrag: 13.05.05, 12:04
  5. externes Programm starten
    Von c-hilgert im Forum C/C++
    Antworten: 6
    Letzter Beitrag: 13.08.04, 11:34