Announcement

Collapse
No announcement yet.

DLL entladen, wenn letztes COM-Objekt freigegeben wurde

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DLL entladen, wenn letztes COM-Objekt freigegeben wurde

    Hallo Herr Kosch,

    wenn das letzte COM-Objekt in einer DLL freigegeben wurde, möchte ich gerne, dass auch die DLL, in der die Objekte erzeugt wurden, wieder entladen wird.

    Meine momentane Lösung basiert auf einem InProcess-Server-Projekt, das in Delphi5 als ActiveX-Bibliothek angelegt wurde.
    Dem Projekt-Quelltext habe ich dann ein COM-Objekt der ActiveX-Registerseite hinzugefügt.
    Auf Client-Seite lasse ich mir eine Referenz auf das COM-Objekt geben.
    Im selben Moment wird richtigerweise die DLL geladen.
    Danach wird über das interface mit dem Objekt gearbeitet.
    Anschließend soll die DLL wieder freigegeben werden.
    Doch weder eine Zuweisung von nil an die Referenzvariable, noch das Verlassen des Scope dieser Variable entlädt die DLL.
    Erst wenn der Client beendet wird geschieht das.
    Wie kann ich erreichen, daß dies bereits zum gewünschten Zeitpunkt geschieht?

    Das Problem ist, daß ich sehr viele und zum Teil auch große DLLs laden muss. Ich bin daher gezwungen, mit dem Hauptspeicher so ökonomisch wie möglich umzugehen. Ein Anhäufen der DLLs bis zum Programmende darf daher nicht sein!

    Viele Grüße
    R.Eisenkolb
Working...
X