1 (изменено: powercat, 2018-07-20 16:55:11)

Тема: AHK_H: DynaCall, MemoryModule

Доброе утро. Пытаюсь разобраться с Dynacall и MemoryModule в AHK_H, решил попробовать переписать функцию:

DllInject(dllname)
{
	hMod := DllCall("LoadLibrary", Str, dllname, Ptr)
	hHook := DllCall("SetWindowsHookEx", Int, 5, Ptr, DllCall("GetProcAddress", Ptr, hMod, AStr, "CBProc", ptr), Ptr, hMod, Ptr, 0, Ptr)
}

Все работает, длл грузится. Следуя примеру из документации получил следующее:


DllInject(dllname)
{
	hMod := DynaCall("LoadLibrary", s, dllname, t) 
    hHook := DynaCall("SetWindowsHookEx", i, 5, t, DynaCall("GetProcAddress", t, hMod, a, "CBProc", t), t, hMod, ui, 0, t)
}

Так не работает.

	
DllInject(dllname)
{
	hMod:= MemoryLoadLibrary(dllname)
	hHook := DllCall("SetWindowsHookEx", Int, 5, Ptr, MemoryGetProcAddress(hMod, "CBProc"), Ptr, hMod, Ptr, 0, Ptr)
}

Так тоже. Дескриптор получаю, но хук не вешается. Пробовал смотреть через A_MemoryModule, тоже не получается. Где ошибки?