Abfrage bei Beendigung
-
Ist es möglich wie zum Beispiel durch ein if, wenn das Programm beendet wird, ein Ereignis auszuführen? Wie eine letzte Ausgabe.
Ich meine nicht, wenn man eine Beenden Option hat, sodnern z.b. oben auf das Kreuz geht, dass dann zum Beispiel eine "Auf Wiedersehen" Nachricht erscheint.
-
mit ANSI C nee
mit WinAPI/MFC jaaich glaube Du musst dafür die Nachricht WM_DESTROY abfangen...
-
Airdamn schrieb:
mit ANSI C nee
Doch, auch mit reinem C ist das möglich. Dazu dient zB die Funktion atexit. Mit deren Hilfe kann man eine Funktion registrieren, die beim Programmende ausgeführt wird.
-
Ein Klick aufs "X" erzeugt eine WM_CLOSE Nachricht, wenn man die nicht selber handled erzeugt die DefWindowProc() WM_DESTROY...
-
wir sind in ansi c, nicht in der winapi.
was wäre denn, wenn er auf linux codet? dann gibts keine WM_DESTROY...
-
Ok, für welches Betriebssystem?
Wenns für Windows ist, dann wie bereits beschrieben, wenn nicht viel GlückCodeschnippsel für Win32 (WinAPI):
LRESULT CALLBACK WndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) { switch( uMsg ) { case WM_CLOSE: MessageBox( NULL, "Auf Wiedersehen!", "Bye", MB_OK ); DestroyWindow(hWNd); return 0; case WM_DESTROY: PostQuitMessage( 0 ); return 0; } return DefWindowProc(hWnd, uMsg, wParam, lParam); }
-
naja, atexit() und dann immer mit exit() statt return beenden, wie groovemaster schon sagte.
-
Danke für die Antworten, habt super geholfen!
-
c.rackwitz schrieb:
naja, atexit() und dann immer mit exit() statt return beenden
Nicht zwangsläufig. Die mit atexit registrierte Funktion wird auch ohne explizite exit Verwendung aufgerufen.