![]() |
Exception nach (!) Programmende...
Liste der Anhänge anzeigen (Anzahl: 1)
Ein freundliches "Hallo"...
ich habe folgendes, mittlerweile wirklich blödes, Probem. Nachdem ich mein Programm beende und nun eigentlich zur IDE zurückkehren möchte, bekomme ich eine Exception. Diese tritt nicht beim Programmablauf auf, sondern nur beim Beenden - ich nehme an, dass da ein Delphi internes CleenUp läuft :? Das Kopmpilat läuft -und beendet sich- ohne zu zucken... Nun bin ich leider nicht so fit, dass ich selbst drauf kommen könnte :cry: Ich habe eine ganze Reihe von Komponenten integriert, von denen ich auch einige im aktuellen Projekt verwende. Nur trat das mit der Exception einfach so, von heute auf morgen, auf - ohne dass ich, wissentlich, irgend etwas exteres hinzugefügt oder zusätzlich verwendet hätte... Ich habe mal einen kleinen Screenshot beigefügt; in der Hoffnung, dass jemand zumindest mit dem Finger in eine bestimmte Richtung zeigen könnte... Gruß, Stefan |
Re: Exception nach (!) Programmende...
Hi,
mit einem ähnlichen Problem hatte ich auch schon zu kämpfen. Dabei trat beim Beenden des Programms allerdings der Fehler "Eine Windows API Funktion ist fehlgeschlagen" auf. Da holf allerdings gar nichts. Erst die Wiederherstellung einer Sicherungskopie von CD schaffte Abhilfe. Wenn du in deinem Programm mehrere Timer eingebaut hast achte darauf, dass diese beim Beenden nicht mehr aktiv sind. Wenn es sich um eine Datenbankanwendung handelt, kann es auch daran liegen, dass die Datenbank beschädigt ist. |
Re: Exception nach (!) Programmende...
Kuck mal, ob du vordem Beenden alle Objekte wieder freigibst. Eventuell will da noch was auf ein Objekt zugreifen, dass nicht mehr existiert.
|
Re: Exception nach (!) Programmende...
bei mir lag es daran, dass noch ein Thread lief. und noch was tun wollte.
Also einfach vor dem Beenden des Programms thread1.waitfor; einfügen
Delphi-Quellcode:
thread1.Terminate;
thread1.WaitFor; thread1.Free; |
Re: Exception nach (!) Programmende...
Vielen Dank für die Tips und dass sich jemand die Zeit zum Lesen genommen hat...
Also ich hab´ -noch einmal- näher reingeschaut. Einen Timer hatte ich tatsächlich nich aktiv - hat´s aber nicht gebracht. Threads benutze ich nicht, da fehlt mir noch das Wissen. Ich habe nur 4 Objekte on-the-fly erzeugt und gebe auch alle ganz brav wieder frei :| Kann man denn nicht rausbekommen, auf welche Komponente da zugegriffen werden soll ? Das Problem für mich ist, dass ich mit dem Programm im Einzelschritt schon längst am .End vorbei bin wenn die Exception ausgelöst wird und warum meckert denn eigentlich das Compilat nicht ? Kann ich die Exception denn unterdrücken ? Wenn ich eh´ nicht rausbekomme woher´s kommt, dann kann mir schließlich auch die Exception gestohlen bleiben... Gruß, Stefan |
Re: Exception nach (!) Programmende...
Kommt die Exception auch wenn du das Programm ohne IDE benutzt?
|
Re: Exception nach (!) Programmende...
Zitat:
Delphi-Quellcode:
?
xxx.Create(self);
Dann solltest du sie nicht selber freigeben. Das erledigt der Owner für dich |
Re: Exception nach (!) Programmende...
Verwendest du DLLs mit String-Parametern?
Verwendest du Pointer mit dyn. alloziertem Speicher? In beiden Fällen kann es zu oben genanntem Fehler kommen... ich hatte mal Probleme mit dem zweiten von mir erwähnten Fall, da ich durch einen Fehler bei der Speicherreservierung über die Grenzen des reservierten Speichers hinaus geschrieben habe... |
Re: Exception nach (!) Programmende...
Das geht ja hier zu wie im Taubenschlag - nicht dass ich mich beschweren möchte :-D
Wenn ich die generierte exe starte, dann läuft´s genau so wie´s sollte. Das Programm endet ohne zu Murren. Selbst Erzeugtes sieht in etwa so aus:
Delphi-Quellcode:
Hab´ ich mir mal irgendwo abgeschaut und bisher immer so gemacht - hatte damit keine Schwierigkeiten :|
private
DrawBuffer: TBitmap; var implementation ... DrawBuffer := TBitmap.Create; ... FreeAndNil(DrawBuffer); Also dass mit den DLL´s mit String-Parametern möchte ich jetzt mal vorsichtig mit "Ja" beantworten. Ich habe eine DLL, der ich verschiedene Dinge, u.a. Strings, mit auf den Weg gebe... warum mir das allerdings Probleme bereiten kann, weiss ich so spontan nicht... Gruß, Stefan |
Re: Exception nach (!) Programmende...
hast du die SharedMem oder so ähnlich eingebunden.
Die ist IMHO für die korrekte Funktionsweiße von DLLs mit Stringhandling nötig. grüße, daniel |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz