|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Фев 6, 2003 14:58:06 Хм-м-м... В туте Iczelion-а №24 про хуке есть следующий кусок кода из dll: invoke CallNextHookEx,hHook,nCode,wparam,lparam mov edx,lparam assume edx:ptr MOUSEHOOKSTRUCT invoke WindowFrompoint,[edx].pt.x,[edx].pt.y invoke postMessage,hWnd,WM_MOUSEHOOK,eax,0 assume edx:nothing Известно, что lParam будет указывать на MOUSEHOOKSTRUCT, но ведь директива assume тоже загрузит адрес этой структуры в регистр edx. Т.о. строка mov edx,lparam не имеет смысла и не нужна (лишние байтики ;). Или это не так и я плохо выспался?.. ;) |
|
|
Дата: Фев 6, 2003 15:33:27 но ведь директива assume тоже загрузит адрес этой структуры assume ничего никуда не загружает. Она вообще не генерит код в бинарник. В данном случае, assume edx:ptr MOUSEHOOKSTRUCT превращает каждое последующее упоминание edx в MOUSEHOOKSTRUCT ptr [edx] в пределах компилятора, вплоть до assume edx:nothing. В MASM32.HLP есть пара примеров использования assume. |
|
|
Дата: Фев 6, 2003 15:38:53 Про то, что код не генериться я знаю. Я просто имел ввиду, что код mov edx,lparam не нужен. Или я что-то не понимаю? |
|
|
Дата: Фев 6, 2003 16:00:25 Если не юзать mov edx,lparam то откуда win32 узнает что адрес MOUSEHOOKSTRUCT для edx нужно грузить именно из lparam? :) |
|
|
Дата: Фев 6, 2003 16:04:39 Хм...Действительно. Но ведь убери mov edx,lparam и всё равно будет работать. Странно... ??? :( |
|
|
Дата: Фев 6, 2003 16:43:09 MOUSEHOOKSTRUCT - это не просто название, а структура винды, объявленная в WINDOWS.INC в пакете masm32, как и все остальные. Т.е. обращаясь к ней ты уже обращаешься к "памяти винды". А загружая в edx lparam можно обращаться к структуре вот так: mov [ebx+4],29Ah mov [ebx+8],100h и т.д. и т.п. А с assume это дело упрощается и выглядит понятнее. ;) |
|
|
Дата: Фев 6, 2003 20:28:35 Но ведь убери mov edx,lparam и всё равно будет работать. Точно будет работать? 100%? Не должно, ведь MOUSEHOOKSTRUCT с координатами лежит именно в lParam, а edx указывает на случайные значения. Т.е. mov edx,lParam таки имеет смысл. |
|
|
Дата: Фев 6, 2003 23:11:16 Проверь сам. Всё работает - 100%. |
|
|
Дата: Фев 7, 2003 03:05:07 · Поправил: Quantum Проверил. Не работает!!! Убираю mov edx,lParam -- не работает (Handle == 0, WndProc == 0) Ставлю обратно -- снова работает... :) |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.073 |