Будьте добры, подскажите, пожалуйста, почему моя программа вылетает?? Код (Text): .386p option casemap:none .model flat, stdcall includelib C:\masm32\lib\kernel32.lib includelib C:\masm32\lib\user32.lib includelib C:\masm32\lib\gdi32.lib includelib C:\masm32\lib\advapi32.lib includelib C:\masm32\lib\winmm.lib include C:\masm32\include\Windows.inc include C:\masm32\include\Kernel32.inc include C:\masm32\include\gdi32.inc include C:\masm32\include\advapi32.inc include C:\masm32\include\user32.inc include C:\masm32\include\winmm.inc include \masm32\Macros\Strings.mac TIME_CALLBACK_FUNCTION EQU 0000H ; callback is function .data xx dd 0 yy dd 0 .CODE main: call rAndStartDriver jmp uuret RegisterAndStartDriver proc LOCAL point: POINT INVOKE GetCursorPos, ADDR point mov eax,point.x .if eax == xx mov eax,point.y .if eax == yy invoke mouse_event, MOUSEEVENTF_LEFTDOWN, 0, 0, NULL, NULL invoke mouse_event, MOUSEEVENTF_LEFTUP, 0, 0, NULL, NULL .endif .endif mov eax,point.x mov xx,eax mov eax,point.y mov yy,eax ret RegisterAndStartDriver endp rAndStartDriver proc arg1 :DWORD, arg2:DWORD, arg3 :DWORD, arg4 :DWORD, arg5 :DWORd invoke timeSetEvent, 50, 2, RegisterAndStartDriver, 0, TIME_CALLBACK_FUNCTION or TIME_PERIODIC ret rAndStartDriver endp uuret: end main
Во-первых, с параметрами функций напутал: 5 параметров должна иметь ф-я таймера RegisterAndStartDriver, а ф-я запуска rAndStartDriver, судя по вызову, наоборот не должна иметь параметров. Во-вторых, после jmp uuret прога идет "в никуда", пытаясь выполнять мусор (или нули), следующие за меткой uuret. Нужно перед end main добавить некую ф-ю ожидания (например Sleep) и затем выход из проги по ret или ExitProcess