.386
.model flat ,stdcall
option casemap:none
include d:\asm\masm32\include\windows.inc
include d:\asm\masm32\include\user32.inc
include d:\asm\masm32\include\kernel32.inc
includelib d:\asm\masm32\lib\user32.lib
includelib d:\asm\masm32\lib\kernel32.lib
DlgProc proto :DWORD,:DWORD,:DWORD,:DWORD
.data
Message db " hello world",0
.data?
hInstance HINSTANCE ?
.code
start:
invoke GetModuleHandle,NULL
mov hInstance, eax
invoke DialogBoxParam,hInstance,1001,NULL,addr DlgProc,NULL
invoke ExitProcess,0
DlgProc proc hWnd:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
DlgProc EndP
end start
DlgProc proc hWnd:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
.if uMsg == WM_COMMAND
mov eax ,wParam
.if eax==1005
invoke SetDlgItemText,hWnd,1004,addr Message
.elseif eax==1006
invoke SendMessage,hWnd,WM_CLOSE,0,0
endif
.elseif uMsg==WM_CLOSE
invoke EndDialog,hWnd,0
endif
xor eax,eax
ret
DlgProc EndP
为什么我编译后在od中查看时,没有DlgProc这个过程?
运行的时候就是一个text,和两个button,却看不见Dlg
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课