Einzelnen Beitrag anzeigen

hschmid67

Registriert seit: 2. Jul 2012
Ort: Weilheim i. Obb.
73 Beiträge
 
Delphi 12 Athens
 
#1

Dynamisch eingebundene Dll im laufenden Betrieb austauschen

  Alt 2. Dez 2024, 15:48
Hallo zusammen,

ich versuche gerade vergeblich, eine dynamisch geladene eigene DLL in meinem Programm zu deaktivieren (FreeLibrary), sie neu zu kompilieren und neu zu laden, aber leider funktioniert das nicht so wie erwartet.
  1. Laden der DLL: LoadLibrary
  2. Ent-Laden der DLL: FreeLibrary
  3. Ändern des Quellcodes
  4. Neu kompilieren der DLL (mit msbuild) in ein Temp-Verzeichnis
  5. Umbenennen der bisherigen DLL
  6. Verschieben der neuen DLL ins alte Verzeichnis
  7. Laden der DLL: LoadLibrary

Doch wenn ich die neue DLL lade und eine Funktion aufrufe, erhalte ich immer noch das Ergebnis der alten DLL.

Hmmm, vermutlich klappt das Ent-Laden nicht so ganz. Denn wenn ich dann das Programm schließe und neu starte, ist die neue Version der DLL verfügbar. Wie kann ich denn überprüfen, ob die alte Version wirklich entladen ist? Gibt es ein (freies) Tool, mit dem man alle von einem Prozess geladenen DLLs gut und übersichtlich sehen kann, vielleicht sogar live, sodass ich das Ent-Laden nachverfolgen könnte?

Bin für jede Hilfe dankbar.
Viele Grüße
Harald
Harald Schmid
  Mit Zitat antworten Zitat