假如我定义一个宏:
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这两个全局变量,使之可以引用到