问题描述
- 求教WIN32汇编如何向后引用变量?
-
假如我定义一个宏:
DEFVAR macro TYPE,VARNAME,VALUE
.data
ifnb
VARNAME TYPE VALUE
else
VARNAME TYPE NULL
endif
.code
endm然后在一个对话框消息回调函数里定义:
.code
_DlgProc proc hWnd,uMsg,wParam,lParam
mov eax,uMsg.if eax == WM_CLOSE invoke EndDialog,hWnd,0 invoke DeleteObject,hBmp1 invoke DeleteObject,hBmp2 .elseif eax == WM_INITDIALOG invoke LoadBitmap,hInstance,IDB_1 DEFVAR HBITMAP,hBmp1 mov hBmp1,eax invoke LoadBitmap,hInstance,IDB_2 DEFVAR HBITMAP,hBmp2 mov hBmp2,eax .else mov eax,FALSE ret .endif mov eax,TRUE ret
_DlgProc endp
end这时问题来了,WM_CLOSE响应里的DeleteObject,hBmp1,DeleteObject,hBmp2这样写hBmp1,hBmp2编译器认为是未定义的,请教各位大大如何声明hBmp1,hBmp2这两个全局变量,使之可以引用到
解决方案
把变量声明到.data段里就是全局变量。
时间: 2024-08-01 12:11:56