FreeLibrary unloaded keine DLLs Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

detlef

FreeLibrary unloaded keine DLLs

23 Mar 2018, 17:26

Hey,

ich habe folgendes Problem:
Ich versuche per DllCall "FreeLibrary" die dx9_overlay API von agrippa aus einem Prozess zu unloaden.
Jedoch bekomme ich nicht den gewünschten Effekt.
Per LoadLibrary läd die Dll immer beim includen der API, nur wie schon erwähnt funktioniert FreeLibrary halt nicht.

Code: Select all

PATH_OVERLAY := RelToAbs(A_WorkingDir, "dx9hook.dll")
hModule := DllCall("LoadLibrary", "Str", PATH_OVERLAY, "Ptr")
Dann später bei OnExit, Close

Code: Select all

Close:
DllCall("FreeLibrary", "Ptr", hModule)
return
just me
Posts: 9453
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: FreeLibrary unloaded keine DLLs

24 Mar 2018, 03:40

Moin,

Ich kann mir dafür nur zwei Gründe vorstellen:
  1. hModule enthält nicht mehr das von LoadLibrary zurückgegebene Modulhandle.
  2. Der Referenzzähler der Dll ist größer 1.
Was macht denn Dein Skript nach der Ausführung von Close:?
detlef

Re: FreeLibrary unloaded keine DLLs

24 Mar 2018, 19:11

Bei Close wird nur FreeLibrary verwendet und der Ordner, indem die Dateien für das Script drin sind, gelöscht.
Da aber FreeLibrary nicht funktioniert, wird der Ordner nicht gelöscht.
just me
Posts: 9453
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: FreeLibrary unloaded keine DLLs  Topic is solved

25 Mar 2018, 02:32

Es ging mir darum, ob das Skript bei/nach Aufruf von Close beendet wird. Wenn das so ist, kannst Du auf den Aufruf von FreeLibrary getrost verzichten. Die Dlls werden dann automatisch vom System entladen. Wenn das nicht funktioniert, wäre ich dieser Dll gegenüber sehr misstrauisch.

Wie prüfst Du, ob FreeLibrary 'funktioniert'?

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 107 guests