![]() |
Re: Dll zur Laufzeit verändern?
Zitat:
Du kannst entweder FreeLibrary() ganz weglassen, Windows kümmert sich beim Beenden des Programmes automatisch um das freigeben aller Ressourcen, auch der DLLs. Da das aber in deinem Fall nicht praktikabel ist, solltest du das Handle der DLL als globale Variable deklarieren und eine zusätzliche UnloadDLL() implementieren, die das Handle mit FreeLibrary wieder freigibt. Dann kannst du in deinem Programm mit LoadDLL(URLfuerDLL) die DLL laden und mit UnloadDLL() wieder entladen und gleich darauf eine andere DLL laden. Du musst nur sicher gehen, daß zwischen dem Entladen und dem Laden der DLL keine Funktion aus dieser DLL aufgerufen wird. |
Re: Dll zur Laufzeit verändern?
Mh, aber ich würde es gerne so machen, dass er die DLL bei Programm start lädt, und beim Beenden wieder entlädt. (Wird ja automatisch gemacht)
Desweiteren soll er, wenn er den Befehl bekommt, die DLL während des Laufens neu laden. Sie soll aber permanent verwendbar sein. Wie geht das? - Ich hoffe ihr versteht was ich meine \: Btw. Ich dachte, das Handle ist nur wichtig, um die DLL zu laden... nicht, um sie zu erhalten. |
Re: Dll zur Laufzeit verändern?
Zitat:
Du kannst natürlich auch das alte Handle nicht freigeben und immer weiter neue DLLs laden, je nachdem wie oft du das machst geht dir dann aber mit der Zeit der virtuelle Adressbereich aus, um eine DLL zu laden. Es empfiehlt sich daher bei plugin-artigen Konstruktionen (wie das hier ja eine ist), die DLL vor dem erneuten Laden zu entladen, damit die alte DLL nicht mehr im Speicher gehalten werden muss. Zitat:
Zitat:
Zitat:
|
Re: Dll zur Laufzeit verändern?
Danke, es geht nun (:
Und wenn man es versteht, sit es auch irgendwie ganz einfach \: <: |
Re: Dll zur Laufzeit verändern?
Zitat:
|
Re: Dll zur Laufzeit verändern?
Kann ich mit einer Dll eigentlich auf Componenten im Main-Programm zugreifen? oO
Mh, ich frage, und probiere nicht selber, weil wenn nicht, lohnt sich ne DLL gar nicht. Danke. |
Re: Dll zur Laufzeit verändern?
Dazu verwendest am besten OOP! Schreibst ein Objekt, das bei dll und Hauptprogramm gleich ist, und lässt es dir über ne Funktion der dll komplett zurückliefern!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz