.386 .model flat, stdcall option casemap:none include \masm32\include\windows.inc include \masm32\include\user32.inc include \masm32\include\gdi32.inc includelib \masm32\lib\user32.lib includelib \masm32\lib\gdi32.lib .data? msg MSG <?> wc WNDCLASS <?> .data hWnd dd 0 hInstance dd 0 hInst dd 0 hPrevInst dd 0 CmdLine dd 0 CmdShow dd 0 hWin dd 0 uMsg dd 0 lParam dd 0 wParam dd 0 szDisplayName db "Wolf Rules", 0 szClassName db "Wolf", 0 .const .code start: WinMain: pop hInst pop hPrevInst pop CmdLine pop CmdShow push hInst pop hInstance mov wc.style, CS_HREDRAW or CS_VREDRAW mov wc.lpfnWndProc, offset WndProc mov wc.cbClsExtra, 0 mov wc.cbWndExtra, 0 mov wc.lpszMenuName, 0 mov wc.lpszClassName, offset szClassName push hInstance pop wc.hInstance push 255 call CreateSolidBrush mov wc.hbrBackground, eax push IDI_APPLICATION push hInstance call LoadIcon mov wc.hIcon, eax push IDC_ARROW push 0 call LoadCursor mov wc.hCursor, eax lea eax, wc push eax call RegisterClass push 0 push hInstance push 0 push 0 push 600 push 800 push 2147483648 push 2147483648 push WS_OVERLAPPED push offset szDisplayName push offset szClassName push WS_EX_WINDOWEDGE call CreateWindowEx mov hWnd, eax push SW_SHOW push hWnd call ShowWindow push hWnd call UpdateWindow StartLoop: lea eax, msg push 0 push 0 push 0 push eax call GetMessage cmp eax, 0 je ExitLoop lea eax, msg push eax call TranslateMessage lea eax, msg push eax call DispatchMessage jmp StartLoop ExitLoop: mov eax, msg.wParam ret WndProc: pop hWnd pop uMsg pop wParam pop lParam cmp uMsg, WM_CREATE je _CREATE cmp uMsg, WM_DESTROY je _DESTROY cmp uMsg, WM_COMMAND je _COMMAND jmp _END _CREATE: push hWin pop hWnd jmp _END _DESTROY: push 0 call PostQuitMessage jmp _END _COMMAND: mov eax, wParam jmp _END _END: push lParam push wParam push uMsg push hWin call DefWindowProc ret end start
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question