Приветствую всех кто зашёл в темку. Вопрос в следующем. Нужно мне найти координаты мышки в данный момент. У Iczelion'а описан процесс с помощью структуры, но мне непонятно почему нельзя использовать LOWORD и HIWORD. В Си я так и сделал. В асме ошибки на этих строках: Код (Text): invoke LOWORD,lParam invoke HIWORD,lParam ошибка: Код (Text): first.asm(100) : error A2006: undefined symbol : LOWORD first.asm(102) : error A2006: undefined symbol : HIWORD
Можно использовать вот такое макро (FASM): Код (Text): macro LPARAM_TO_XY r32X, r32Y, lParam { mov r32X, lParam mov r32Y, lParam and r32X, 0000FFFFh ; LOWORD shr r32Y, 16 ; HIWORD }
Eretic Можно например так Код (Text): xor ecx,ecx; mov cx,word ptr lParam; ecx= LOWORD(lParam) mov eax,lParam shr eax,16; eax=HIWORD(lParam)
mrcrown можно проще только mov, без shr xor eax,eax mov ecx,eax mov ax, word [lParam] ;LOWORD mov cx, word [lParam+2] ;HIWORD
А вы проверяли работоспособность этих кодов? Вот мне нужно в структуру записать значения. Код (Text): POINTLA STRUCT x dd ? y dd ? POINTLA ENDS Код (Text): xor eax,eax mov ecx,eax mov eax,[lParam] mov ecx,[lParam+2] mov hitpoint.y,eax mov hitpoint.x,ecx Используя точно варианты FatMoon и max7C4 выдаётся синтаксическая ошибка
вот как раз на этих строках и ошибка movzx eax,word [lParam] error A2009: syntax error in expression movzx ecx,word [lParam+2] error A2009: syntax error in expression
Eretic ну наверное (если я правильно теперь понял, что вам надо для масм) movzx eax,word ptr lParam movzx ecx,word ptr lParam+2
Mikl___ ну к этому выводу можно придти посмотрев скажем сюда а именно на error A2009. если мне не изменяет память, то это масм