Привет всем.
Есть dll с экспортными функциями, которую будут подключать стороннее приложение. В одной экспортной функции ставиться хук на мышь. При этом запоминается сам дескриптор хука, и другие необходимые переменные. Но когда хуковая функция срабатывает, оказывается что нужные глобальные переменные равны нулю. При этом даже вывод в общую секцию данных не помогает. Описываю все параметры
Переменные
#pragma data_seg(".shared")
HWND hwndWin = NULL;
HHOOK hHook = NULL;
#pragma data_seg()
#pragma comment(linker, "/section:.shared,RWS")
def file
LIBRARY
SECTIONS
.shared READ WRITE SHARED
EXPORTS
SetHook
вызов и сама хуковая функция
hHook = SetWindowsHookEx(WH_MOUSE, HookProc, hIns, dwThreadId);
LRESULT CALLBACK HookProc (int nCode, WPARAM wParam, LPARAM lParam ) {
лог, сначала идет место где запись, потом имя переменной, потом значени. hm — hmodule, hwnd переменная
DllMain. hm: 138936320, hwnd: 0
SetHook. hm: 138936320, hwnd: 590988
DllMain. hm: 186384384, hwnd: 0
HookProc. hm: 186384384, hwnd: 0
в SetHook запомнился hwnd, но в HookProc он равен 0.
Буду благодарен за помощь в решении. Спасибо.