h18755 发表于 2011-12-7 02:45:27

W32里的NULL是什么意思

invoke Messagebox,NULL 其中 NULL 是不是四个push 一个call的集合?

幕府幽魂 发表于 2011-12-7 10:25:05

要好好看书,书上有

h18755 发表于 2011-12-7 12:45:26

幕府幽魂 发表于 2011-12-7 10:25 要好好看书,书上有

书上没有......

bingghost 发表于 2011-12-7 17:31:45

NULL的值   好像就是0吧    你用0试试   一样可以的
另外在debug.inc里面提供了一个宏   
CTEXT   也就是说你的MessageBox可以写成如下形式
invoke MessageBox,NULL,CTEXT("Helllo world"),CTEXT("Caption"),MB_OK

bingghost 发表于 2011-12-7 17:36:59

{:5_109:}另外如果你用的是RadASM的话   是不能直接使用这些测试宏的
MASM32SDK   我没有用过   但是RadASM是基于MASM32的
所以在使用的Debug.inc下的宏时候请注意一个小小的问题

比如你的工程文件在E:\Project
那么你需要把MASM放到E盘的根目录下
不然会出现Cannot open kernel32.inc的错误   嗯大概就是这样了

h18755 发表于 2011-12-8 00:30:37

bingghost 发表于 2011-12-7 17:36 另外如果你用的是RadASM的话   是不能直接使用这些测试宏的 MASM32SDK   我没有用过   但是Rad ...

谢谢老师,虽然没听懂

bingghost 发表于 2011-12-9 12:43:23

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]
查看完整版本: W32里的NULL是什么意思