Jupp, bei Klassen mußt du auf BPLs wechseln.
Wennn du Interfaces nutzt und nicht willst, daß die
DLL vor Freigabe des Interfaces freigegeben wird, dann könntest du in dem Objekt eine eigene Instanz der
DLL holen.
Im Contructor ein
LoadLibrary.
Aber beim Freigeben gibt es ein "kleines" Problemchen, denn da müsstest du jetzt das FreeLibrary innerhalb der
DLL aufrufen (im Destructor) aber dann würdest du ja den Coderücksprungpunkt löschen, auf den das
FreeLibrary zurück will, womit es dann kannlt, bevor die
DLL komplett verlassen wurde.
Man kann da aber einen Thread starten, welcher etwas verzögert die
DLL und sich frei gibt.
FreeLibraryAndExitThread (aber kein
RTL-Thread, sondern nur eine "einfache" Thread-Prozedur, denn sonst bleiben eventuell Speicherlecks zurück ode es knallt dennoch, falls die
DLL/
RTL sich den Thread merkt und freigeben will, wenn sie freigegeben wird)