Ich sehe beim modulübergreifenden Arbeiten mit DLLs zwei Probleme.
1. Wenn Objekte Strings oder andere Sprachkonstrukte verwenden, die den Speichermanager nutzen. Besonders fies ist das bei Bibliotheken wie der
VCL.
2. Wenn explizit oder implizit auf die
RTTI zugegriffen wird. Ich habe hier mal einen Ersatz für den as-Operator gepostet, der das Problem umgeht. Mit externen Bibliotheken funktioniert er natürlich nicht. Interessanterweise verwendet Delphi selbst einen modifizierten is-Operator beim
Exception-Handling mit der on-EWuppdi-do-Syntax, sodass es möglich sein sollte, modulübergreifend Exceptions zu fangen.
Worin ich ehrlich gesagt kein Problem sehe, ist das Allozieren und Freigeben von Objekten. Glücklicherweise sind nämlich TObject.Destroy und TObject.FreeInstance virtuell, sodass der richtige Speichermanager das Objekt freigibt.