![]() |
|
|
![]()
|
|
| sabantui |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 18.3.2006 Репутация: нет Всего: нет |
Всем доброго времени суток. У меня такая проблема. есть следующий кусок кода dll-ки для хука
---------------------------------------------------------------------------------------------------------------------------------------- ExecutableFunction Function; HHOOK hMouseHook; HOOK_API void DoHook(ExecutableFunction _Function) { Function = _Function; hMouseHook = SetWindowsHookEx(WH_MOUSE, (HOOKPROC)MouseFunction, ::LoadLibrary("Hook.dll") , 0); } HOOK_API void DoUnhook() { UnhookWindowsHookEx(hMouseHook); } LRESULT CALLBACK MouseFunction(int _Code, WPARAM _wParam, LPARAM _lParam) { if (_Code >= 0) { LPMOUSEHOOKSTRUCT MouseHookParam = (MOUSEHOOKSTRUCT*) _lParam; if (MouseHookParam->pt.y == 0 && MouseHookParam->pt.x == 0) { try { Function(); } catch(...) { MessageBox(NULL, "мдя... :-(((", "инфа к размышлению", MB_OK); } return 1; } } return ::CallNextHookEx(hMouseHook, _Code, _wParam, _lParam); } --------------------------------------------------------------------------------------------------------------------------------------------- проблема в том, что в функции MouseFunction, обработчеке перехватываемых от мыши сообщений, указатель Function на функцию почемуто равен NULL, хотя в методе DoHook я его инициирую. Что не так? Добавлено @ 12:57 и еще, по каким-то странным обстоятельствам несколько раз подряд все работало очень хорошо... ЗЫ блин... все форматироваине потерялось |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Виноват-виноват: нужно пользоваться кнопкой "код", а еще неплохо бы прочесть правила форума, перед тем, как туда писать.
По сути вопроса: твою проблему нужно решать с отладчиком в зубах: может ты нулем свой указатель и инициализируешь? -------------------- ... |
|||
|
||||
| Fin |
|
|||
![]() Дракон->Спать(); ![]() ![]() Профиль Группа: Участник Сообщений: 687 Регистрация: 4.1.2006 Репутация: 1 Всего: 10 |
Покажи, как ты вызываеш функцию DoHook. И как определён тип ExecutableFunction.
-------------------- Пролетал мимо. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |