在WIN7的环境下运行不了。兼容模式也弄了。菜鸟不懂什么原因。
- Assembly code
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> .386 .model flat,stdcall option casemap:none;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;equ 值定义APP_ICON EQU 1200;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;include文件定义;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>include windows.incinclude kernel32.incinclude user32.incinclude gdi32.incincludelib kernel32.libincludelib user32.libincludelib gdi32.lib;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;数据段;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> .data?hInstance dd ?hWinMain dd ?hEdit dd ? .constszClassName db 'MyTextClass',0szCaptionMain db 'MyTextClass~',0szEditClass db 'edit',0;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;代码段;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> .code;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;窗口过程;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>_ProcMain proc hWnd,uMsg,wParam,lParam pushad mov eax,uMsg .if eax == WM_CREATE invoke LoadIcon, hInstance, APP_ICON invoke SendMessage, hWnd, WM_SETICON, ICON_BIG, eax ;创建文本编辑框 invoke CreateWindowEx,WS_EX_CLIENTEDGE,offset szEditClass,NULL,WS_CHILDWINDOW or WS_VISIBLE or WS_VSCROLL or WS_HSCROLL,0,0,500,500,hWnd,NULL,hInstance,NULL mov hEdit,eax .elseif eax == WM_DESTROY invoke DestroyWindow,hWinMain .elseif eax == WM_CLOSE invoke PostQuitMessage,NULL .else invoke DefWindowProc,hWnd,uMsg,wParam,lParam ret .endif xor eax,eax popad ret_ProcMain endp;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>_WinMain proc LOCAL @stWndClass:WNDCLASSEX LOCAL @stMsg:MSG invoke GetModuleHandle,NULL mov hInstance,eax invoke RtlZeroMemory,addr @stWndClass,sizeof @stWndClass;******************************************************************;注册窗口类;****************************************************************** invoke LoadCursor,0,IDC_ARROW mov @stWndClass.hCursor,eax push hInstance pop @stWndClass.hInstance mov @stWndClass.cbSize,sizeof WNDCLASSEX mov @stWndClass.style,CS_HREDRAW or CS_VREDRAW mov @stWndClass.cbClsExtra,NULL mov @stWndClass.cbWndExtra,NULL mov @stWndClass.hbrBackground,COLOR_WINDOW + 1 mov @stWndClass.lpszMenuName,NULL mov @stWndClass.lpszClassName,offset szClassName invoke LoadIcon,NULL,APP_ICON mov @stWndClass.hIcon,eax mov @stWndClass.hIconSm,eax invoke RegisterClassEx,addr @stWndClass;******************************************************************;建立现实窗口;****************************************************************** invoke CreateWindowEx,NULL,\ offset szClassName,offset szCaptionMain,\ WS_OVERLAPPEDWINDOW,\ 100,100,600,400,\ NULL,NULL,hInstance,NULL mov hWinMain,eax invoke ShowWindow,hWinMain,SW_SHOWNORMAL invoke UpdateWindow,hWinMain ;******************************************************************;消息循环;****************************************************************** .while TRUE invoke GetMessage,addr @stMsg,NULL,0,0 .break .if eax==0 invoke TranslateMessage,addr @stMsg invoke DispatchMessage,addr @stMsg .endw ret_WinMain endp;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>start: call _WinMain invoke ExitProcess,NULL;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>end start