[Exitcode]...wurde mit Code 3 (0x3) beendet
-
Hallo zusammen,
mein Programm endet im Debug-Mode mit "3", im Release mit 0...
Weiß jemand, was mir diese 3 sagen sollte?(SDI, Visual Studio 2005)
Danke!!!
mfgFabian
-
weiß gerade nicht ob du diese meinst: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/system_error_codes.asp
-
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
-
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
-
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...
-
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)