[Exitcode]...wurde mit Code 3 (0x3) beendet



  • Hallo (d)evil,

    ich meine die letzte Ausgabe im "Ausgabefenster"...
    Da steht doch immer nach dem Beenden:

    Das Programm "[1344] xyz.exe: Systemeigen" wurde mit Code 0 (0x0) beendet.

    Und bei mir steht da eben nicht 0, sondern 3 beim Debuggen 😕

    Die Liste von dir bezieht sich doch aber nur auf Fehler, die "GetLastError" zurückgibt, oder?

    Bzw. was für ein Pfad

    The system cannot find the path specified.

    soll denn beim Beenden/nach dem Beenden meines Programmes falsch sein???

    mfg
    FabHan


  • Mod

    Kann es sein, dass Du gar keinen Wert in Deiner Main Funktion returnierst?
    Was ist das für ein Programm? Console, Windows?



  • Martin Richter schrieb:

    Kann es sein, dass Du gar keinen Wert in Deiner Main Funktion returnierst?
    Was ist das für ein Programm? Console, Windows?

    Wie gesagt, es ist ein "Single Document Interface"(MFC), also ein "Windows-Programm"...

    Kenn mich mit den MFC so gut wie noch garnicht aus, aber da gebe ich doch gar keine Wert zurück, oder? (Welche "Main-Funktion"?)



  • Naja Martin ist warscheinlich von einem reinen WinAPI Programm ausgegangen ... d.g. int WINAPI WinMain(HINSTANCE, HINSTANCE, char**, int) oder wie die noch gleich aussah ... aber da du MFC hast wurde das alles gekapselt und du brauchst dich um sowas net kümmern ...



  • ... aber da du MFC hast wurde das alles gekapselt und du brauchst dich um sowas net kümmern ...

    Und woher kommt dann der "Exitcode 3", bzw. was ist das für ein Fehler???

    mfg
    Fabian


  • Mod

    Es ist gar kein Fehler. Du hast eine Funktion ExitInstance in Deiner Applikation und die returniert normalerweise den Exit Code!



  • hm...
    aber normalerweise sollte dieser doch "0" sein, wenn alles richtig beendet wurde, oder? 😕



  • Hast Du "ExitInstance" überladen? und gibst was eigenens zurück?

    Der Rückgabewert ist nicht i.d.R. "0" sondern, das was mittels "PostQuitMessage" (bzw. bei WM_QUIT als wParam) mitgeben wird.
    Setzt doch mal ein Breakpoint auf "AfxPostQuitMessage" bzw. "PostQuitMessage", dann siehst Du im Callstack, wer den Wert auf 3 setzt...


  • Mod

    Die MFC ist an dieser Stelle etwas verworren!
    ExitInstance holt aus der letzten empfangenen Nachricht (das ist normalerweise WM_QUIT) den wParam Wert. Wenn die Applikation jetzt alos nicht WM_QUIT verwendet, weil z.B. es anders terminiert wird. Dann ist der Exitcode einfach der wParam Wert der letzten Nachricht, oder eben das was ExitInstance returniert wen man es überladen hat.



  • Martin Richter schrieb:

    ExitInstance holt aus der letzten empfangenen Nachricht (das ist normalerweise WM_QUIT) den wParam Wert.

    So, das ist jetzt aber die endgültig, letzte und genaueste Erklärung 😃
    Geneuaer gehts nur noch, wenn man in den Source schaut (was vermutlich Martin und auch ich gemacht haben 😉 )


Anmelden zum Antworten