Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi DLL nach Benutzung wieder freigeben (https://www.delphipraxis.net/93942-dll-nach-benutzung-wieder-freigeben.html)

TheMiller 13. Jun 2007 16:40


DLL nach Benutzung wieder freigeben
 
Hallo,

ich habe ein kleines Problem. Ich habe ein Programm, welches Plug-Ins über DLLs einbindet. Jetzt möchte ich aber nicht alle DLLs beim Programmstart laden, sondern erst dann, wenn die einzelnen Module gebraucht werden. Das ist eigentlich auch kein Problem. Das Problem ist eher das Freigeben. Die PlugIn-DLLs enthalten allesamt Formulare, die der Anwender bedient. Schließt er nun ein Formular, wird es ja noch weiter ausgeführt. Wie kann ich jetzt feststellen, dass das PlugIn nicht mehr verwendet wird, sodass ich es dann freigeben kann..

Danke im Voraus

Bernhard Geyer 13. Jun 2007 17:07

Re: DLL nach Benutzung wieder freigeben
 
Da mußt du schon über die eigene Programmlogik dies Sicherstellen. Eine Funktion der Art UnloadDynamicLoadedDLLIfNoLongerNeeded gibt es nicht.

alzaimar 13. Jun 2007 18:10

Re: DLL nach Benutzung wieder freigeben
 
Macht das nicht Windows sowieso automatisch, bzw. 'on demand'?

Bernhard Geyer 13. Jun 2007 21:25

Re: DLL nach Benutzung wieder freigeben
 
Zitat:

Zitat von alzaimar
Macht das nicht Windows sowieso automatisch, bzw. 'on demand'?

Laden teilweise ja. Entladen: Nein. Es wird bei Nicht-Gebrauch der reale Ram freigegeben da ja aus der DLL die Teile bei Bedarf nachgeladen werden können. Ist aber dann Aufgabe des Speichermanagers des OS und der MPU des Prozessors.

TheMiller 14. Jun 2007 22:27

Re: DLL nach Benutzung wieder freigeben
 
Danke...

Hm... wie kann ich eine solche Funktion realisieren? Habe keine Idee.

Bernhard Geyer 16. Jun 2007 09:01

Re: DLL nach Benutzung wieder freigeben
 
Indem du allen Zugriff auf eine solche DLL über ein Klasse (Könnte das Fassaden-Muster sein). Und diese weis dann ob die DLL noch nötig ist oder nicht (z.B. Laden im Konstruktor, Endladen im Destruktor).

TheMiller 16. Jun 2007 11:07

Re: DLL nach Benutzung wieder freigeben
 
Danke, das werde ich mir nochmal genauer ansehen!

Schönes WE!

TheMiller 16. Jun 2007 11:41

Re: DLL nach Benutzung wieder freigeben
 
Ja... hier bin ich wieder...

Hab mir mal den Wiki-Eintrag angesehen und hier im Forum nach Fassade geschaut. Aber ich habe leider noch keine Vorstellung, wie das konkret funktioniert... Gibt es irgendwo ein Tutorial, das mir beim Verständnis helfen könnte?

EWeiss 16. Jun 2007 13:21

Re: DLL nach Benutzung wieder freigeben
 
Zitat:

Zitat von DJ-SPM
Ja... hier bin ich wieder...

Hab mir mal den Wiki-Eintrag angesehen und hier im Forum nach Fassade geschaut. Aber ich habe leider noch keine Vorstellung, wie das konkret funktioniert... Gibt es irgendwo ein Tutorial, das mir beim Verständnis helfen könnte?

Du hast ja auch noch die möglichkeit diese als ActiveX.dll auszulegen.
Kannst du über Interface realisieren.

Diese kannst du dann bei bedarf registrieren und unregistrieren

gruss Emil

TheMiller 24. Jun 2007 14:24

Re: DLL nach Benutzung wieder freigeben
 
Hallo,

hab mich nochmal damit beschäftigt und bin auf die Idee gekommen, dass das evtl auch über selbsterstellte Messages gehen kann. Ist das richtig, oder funktioniert das doch nicht. Habe noch nie eine Message selbst versendet bzw. erstellt.

Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:57 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz