Frage zu Programm Ende
-
Hallo!
Ich habe mal eine kleine Frage:
-
Das hängt der Art ab wie du die GUI programmiert hast(X11/WinAPI/Qt/wxWidgets/FLTK etc). In FLTK z.B. kannst du eine Methode angeben die dann abgearbeitet wird sobald das Fentser geschlossen wird. Mit anderer GUI-Programmierung kenne ich mich nicht gut genug aus.
Gruß Blue-Tec
-
Im regelfall gibts nen close-event, den man zwecks Aufräumen abfangen kann.
bei graphapp ist es z. B der on_window_close
-
Dein Fenster bekommt eine WM_CLOSE - Nachricht, bevor es zerstört wird. Die mußt Du je nach Programmierumgebung geeignet abfangen, und entweder durch Rückgabe eines Return-Codes das Schließen verhindern, oder Deine Aufräumarbeiten erledigen und den Dingen ihren natürlichen Lauf (DefWindowProc) lassen.
-
Ich programmiere mit CLR-Konsole.
-
-
Oops, habe grade gesehen, dass ichs doch mit Windows Console mache, aber ich werds mal testen ...
-
Geqoo schrieb:
Wenn jemand dein Programm brutal abwürgt, warum willst du dann noch Speicher freigeben oder ein Socket schließen? Das macht das Betriebssystem automatisch.
Ein Programm sollte das natürlich tun, wenn es ordentlich beendet wird. Aber wenn das Programm abgewürgt wird, macht das meiner Ansicht nach, keinen Sinn.
Das macht lediglich Sinn, wenn du irgendwelche temporären Dateien oder so löschen willst. Wobei es auch da Funktionen gibt, die das automatisch machen, wenn die Anwendung beendet wird.
-
Es geht ja nicht ums Terminate Event, sondern ganz normal, wenn man das Programm von sich aus beendet (über schließen).
-
Du kannst mit atexit() eine Funktion angeben die beim beenden ausgeführt werden soll, dass wird zB bei SDL so gemacht mit SDL_Quit das dann am ende aufräumt sprich Speicher freigibt usw..
-
Geqoo schrieb:
Es geht ja nicht ums Terminate Event, sondern ganz normal, wenn man das Programm von sich aus beendet (über schließen).
Naja, mit dem Klick auf das Kreuz schließt man die Konsole und nicht das Programm; das wird letztendlich abgewürgt, weil ihm die Konsole unter'm Hintern weggezogen wird.
Das Konsolenprogramm selbst sollte man durch einen Tastendruck/eine Tastenkombination schließen (können), ohne die Konsole zu schließen.Aber wie schon erwähnt, durch das Setzen von Console Control Handlern kann Dein Programm auch darauf reagieren.
-
Gehört alles ins Forum WinAPI bzw. Win32 Console.
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum ANSI C in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.