首先我们看一个“复杂”的Win32汇编程序程序用来显示一个消息框 -------------------------------------------------- ;文件名:3.asm .386 .model flat ,stdcall NULL equ 0 MB_OK equ 0 ExitProcess PROTO :DWORD MessageBoxA PROTO :DWORD,:DWORD,:DWORD,:DWORD includelib kernel32.lib includelib user32.lib .data szText db "Hello, world!",0 szCaption db "Win32Asm",0 .code start: push MB_OK lea eax,szCaption push eax lea eax,szText push eax push NULL call messageboxa xor eax,eax push eax call exitprocess end start -------------------------------------------------- 编译链接: 分下面两步进行: ml /c /coff 3.asm link /subsystem:windows /libpath:d:\masm7\lib 3.obj 第一步编译生成3.obj文件 /c 表示只编译,不链接 /coff 表示生成COFF格式的目标文件 第二步链接生成3.exe文件 /subsystem:windows 表示生成windows文件 /libpath:d:\masm7\lib 表示引入库的路径为:d:\masm7\lib。 在安装Masm32后,引入库位于Masm32\Lib目录下。 也可设置环境变量Lib的值:在dos提示符下键入Set Lib=d:\masm7\lib,这样“链接”就可简单写成: link /subsystem:windows 3.obj,试想一下,在程序调试过程中,修改源程序是常用的事啦,每次编译链接都要带/libpath:...那该有多烦人呢。当然,我们也可在源程序中直接给出引入库的位置,这样,链接时就方便啦,如下: includelib d:\masm7\lib\kernel32.lib includelib d:\masm7\lib\user32.lib -------------------------------------------------- 执行:在dos提示符下键入3,回车,出现一个消息框,哈哈,真正的Win32程序! -------------------------------------------------- 深入分析: 看一下源程序,有这么两行:call messageboxa\call exitprocess。
复制本页网址和标题,发送给你QQ/Msn的好友一起分享
上一篇:Windows下控制台输出
下一篇:DOS下的EXE格式文件