AW: Application beenden vor erstem Erzeugen von Form
Zitat:
Es kann aber auch Programme ohne Message-Queue geben, auch wenn das nicht besonders Windows-typisch ist. Wenn du dich näher mit den Grundlagen (also was unter anderem hinter diesem Objekt steckt) beschäftigen willst, kannst du dir das Win32-Tutorial von Luckie angucken. |
AW: Application beenden vor erstem Erzeugen von Form
Zitat:
|
AW: Application beenden vor erstem Erzeugen von Form
Zum Beispiel.
|
AW: Application beenden vor erstem Erzeugen von Form
Offene Handles und von der Anwendung genutzter Speicher wird seit Windows NT/Windows 2000 von Windows automatisch freigegeben.
Vorher, bei Windows 9x, gab es das so nicht, da führte Halt ggf. auch dort zu Problemen. Bei geladenen DLLs und Systemobjekten klappt die automatische Freigabe aber offenbar leider nicht immer, zumindest bis XP (bei Vista/7/8 habe ich noch keine solchen Probleme mehr gehabt), wenn das Programm abgeschossen wird. Das führt meistens nicht zu größeren Problemen, aber es kann auch passieren, dass man Windows irgendwann neustarten muss. Was da genau schief geht, weiß ich nicht, weil ich es mir nie genauer angeschaut habe. |
AW: Application beenden vor erstem Erzeugen von Form
Wollte gerade sagen, wenn ein Prozess terminiert wird, gibt Windows alle Ressourcen frei und schließt alle offenen Handles. Und über Windows 9x brauchen wir uns wohl nicht mehr unterhalten. ;) Nichts desto trotz bin ich der Meinung, man soll selber den Müll wegräumen, den man angehäuft hat. Hab eich zumindest in meiner Erziehung so gelernt.
|
AW: Application beenden vor erstem Erzeugen von Form
Zitat:
Aber wer weiß, wie Windows 1337 mit Ressourcen umgeht? Oder ReactOS? Oder WINE? Im besten Fall werden die sich an die API Dokumentation halten. Also sollte man zumindest dafür sorgen, dass sich zumindest der Code, den man selbst kontrolliert, sich entsprechend der Spezifikation verhält. Dabei kann er auch auf geringe Abweichung von der Spezifikation in den nicht kontrollierten Komponenten behandeln (vgl. strikte Sender und relaxte Empfänger in Netzwerk-Protokollen). PS: Das ist allgemein gemeint, also direkt nicht an Luckie gerichtet. Das Zitat ist nur der Aufhänger. |
AW: Application beenden vor erstem Erzeugen von Form
Die Message-Queue wird nicht zerstört ... sie wird einfach nur nicht mehr abgearbeitet, was Delphi in Application.Run und Application.ProgressMessages macht.
Konsolenanwendungen kommen ohne Message-Queue aus, da sie standardmäßig nichts mit "Fenstern" Machen. |
AW: Application beenden vor erstem Erzeugen von Form
Hallo,
Zitat:
Bis bald Chemiker |
AW: Application beenden vor erstem Erzeugen von Form
Zitat:
|
AW: Application beenden vor erstem Erzeugen von Form
So sollte das sauber sein (unabhängig davon, ob das user-friendly oder sinnvoll ist)
Delphi-Quellcode:
Denn jetzt verhält sich die Anwendung wie eine Konsolen-Anwendung, wenn die Anfangsbedingung nicht zutrifft.
if not SomethingMissing then
begin Application.Initialize; Application.CreateForm(TfrmMain, frmMain); Application.Run; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz