W32里的NULL是什么意思
invoke Messagebox,NULL 其中 NULL 是不是四个push 一个call的集合? 要好好看书,书上有 幕府幽魂 发表于 2011-12-7 10:25 要好好看书,书上有书上没有...... NULL的值 好像就是0吧 你用0试试 一样可以的
另外在debug.inc里面提供了一个宏
CTEXT 也就是说你的MessageBox可以写成如下形式
invoke MessageBox,NULL,CTEXT("Helllo world"),CTEXT("Caption"),MB_OK {:5_109:}另外如果你用的是RadASM的话 是不能直接使用这些测试宏的
MASM32SDK 我没有用过 但是RadASM是基于MASM32的
所以在使用的Debug.inc下的宏时候请注意一个小小的问题
比如你的工程文件在E:\Project
那么你需要把MASM放到E盘的根目录下
不然会出现Cannot open kernel32.inc的错误 嗯大概就是这样了 bingghost 发表于 2011-12-7 17:36 另外如果你用的是RadASM的话 是不能直接使用这些测试宏的 MASM32SDK 我没有用过 但是Rad ...
谢谢老师,虽然没听懂 ShowText MACRO text
local lbl
.const
lbl db text,0
.code
exitm <offset lbl>
ENDM
实质上这样你就可以使用了这样用了
.386
.model flat,stdcall
option casemap:none
include windows.inc
include kernel32.inc
include user32.inc
includelib user32.lib
includelib kernel32.lib
ShowText MACRO text
local lbl
.const
lbl db text,0
.code
exitm <offset lbl>
ENDM
.code
start:
invoke MessageBox,NULL,ShowText("哈哈-这就是宏汇编的强大之处"),ShowText("这里是标题"),MB_OK
invoke ExitProcess,NULL
end start
页:
[1]