Ich verstehe nicht warum, immer alle sagen, zwischen
DLL und Host könnten keine Objekte ausgetauscht werden. In meiner 2D Bibliothek mache ich das ständig und das funktioniert einwandfrei. Wer es nicht glauben kann schaut hier nach:
DLL-Hauptunit:
http://andorra.cvs.sourceforge.net/v...22&view=markup
DLL-Klassenimplementierungen:
http://andorra.cvs.sourceforge.net/v...53&view=markup
Die einzige Einschränkung, die mir bis jetzt aufgefallen ist, ist die Tatsache, dass man nicht auf die
RTTI Informationen der im Plugin erzeugten Objekte zugreifen kann und das man in der
DLL keine größeren Speicherbereiche reservieren kann, auf die dann die Hostapplikation zugreifen darf. In die andere Richtung geht jedoch auch das einwandfrei.
Ich schätze das die BPLs zum großen Teil nur das Problem mit den
RTTI Informationen beheben.
Daher vermute ich, dass das hier geschilderte Problem von den in der
DLL verwendeten Units kommt, die beim Entladen der Bibliothek versuchen Finalisierungsarbeiten auszuführen, die dann (also in der Bibliothek) jedoch nicht funktionieren.