Einzelnen Beitrag anzeigen

OlliWW

Registriert seit: 31. Aug 2011
159 Beiträge
 
#3

AW: Richtiges Beenden/Freigeben einer (Delphi) DLL

  Alt 21. Jun 2022, 14:48
Hast du mal probiert dass FreeLibrary testweise in ein FormClose o.ä. zu packen um ein/auszuschließen dass es am finalization liegt?
Ich hab das FreeLibrary mal zum testen in einen Button gelegt: Gleiches Phänomen.
Ich kann die DLL noch soweit debuggen, dass ich sehe dass der Finalization teil der DLL getriggert wird (wenn ich ihn implementiere). Das heisst, von meinem Verständnis läuft es wie folgt:

Anwendung: FreeLibrary
DLL: finalization der dll methoden
DLL: finalization der verwendeten units
DLL: <crash...in einer der verwendeten units>

Der Code funktioniert außerhalb einer DLL übrigens ohne Probleme, Memory Leaks etc. Alles was meine DLL ja macht, ist den Logger eine Drittkomponente zu initialisieren.

PS: Dein try-finally oben bewirkt rein gar nichts wenn das finally leer ist.
Ist nur "test code", kein sauber aufgeräumter Code. Ich habe mir nur schnell ein Testprogramm für den DLL Call geschriebnen um andere Seiteneffekte ausschließen zu können.
  Mit Zitat antworten Zitat