Einzelnen Beitrag anzeigen

Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#7

Re: Zugriffsverletzung bei DLL-Benutzung

  Alt 28. Okt 2008, 17:20
Zitat von SirThornberry:
Es geht nicht nur um VCL-Komponenten sondern generell um Objecte. Das der Fehler erst beim Beenden kommt hast du richtig erkannt. Problem ist das die DLL und deine Anwendung getrennte Speichermanager verwenden. Beim Beenden versuchen diese den Speicher frei zugeben und da kommt es zu Fehlern weil der eine Speichermanager versucht Dinge frei zu geben die er gar nicht angefordert hat.
Aber man sollte generell keine Objecte zwischen DLL und Anwendung austauschen. Dafür gibt es BPLs. Diese haben den Vorteil das sicher gestellt wird das die Objecte in der DLL(BPL) identisch mit denen außerhalb der DLL(BPL) sind. Denn bei normaler Verwendung per DLL stellt ja niemand sicher das ein Object aus der DLL von der gleichen Delphiversion mit dem gleichen Speicheraufbau stammt.
Hatte (da ich eigentlich noch nie Objekte in einer dll gebraucht habe) das Problem zwar nocht nicht, aber kannst du das bitte nochmal genauer ausführen? Wie sieht es zum Beispiel mit einer einfachen von TObject abgeleiteten Klasse aus, die nicht ausgetauscht wird, sondern einfach nur in der dll verwendet wird?
  Mit Zitat antworten Zitat