首页
社区
课程
招聘
被学汇编:有关编译的一个问题
发表于: 2005-8-15 17:20 5210

被学汇编:有关编译的一个问题

2005-8-15 17:20
5210
最近小弟在学masm32汇编
做的第一个例子就是经典的 "Hello word!"

.386
.model flat,stdcall
option casemap:none

include d:\masm32\INCLUDE\WINDOWS.INC
include d:\masm32\INCLUDE\user32.inc
include d:\masm32\INCLUDE\kernel32.inc
includelib user32.lib
includelib kernel32.lib
       .data
szCaption db  'A messagebox !',0
szText    db  'Hello , Word !',0

       .code

  start:
        invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK
        invoke ExitProcess,NULL

         end start
         
保存为hello.asm
然后建一个批处理文件hello.dat
内容如下:
@echo off
D:\masm32\bin\ml /c /coff hello.asm
D:\masm32\bin\Link  /SUBSYSTEM:WINDOWS hello.obj

运行批处理文件,只能生气一个hello.obj文件,不能骗译成最终的exe 文件
请问各位前辈大虾,问题出在哪里呢?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 1223
活跃值: (469)
能力值: (RANK:460 )
在线值:
发帖
回帖
粉丝
2
D:\masm32\bin\Link  /SUBSYSTEM:WINDOWS hello.exe
2005-8-15 17:54
0
雪    币: 201
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢,问题查出来了
原来是在定义库的时候,忘了加路径
includelib user32.lib
includelib kernel32.lib
改成
includelib d:\masm32\lib\user32.lib
includelib d:\masm32\lib\kernel32.lib
就可以了
批处理的时候,还是用下面这条
D:\masm32\bin\Link  /SUBSYSTEM:WINDOWS hello.obj
2005-8-16 09:15
0
雪    币: 228
活跃值: (85)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
可以在 link 时指定 lib path
这样在  includelib 时就不用加路径了

link /SUBSYSTEM:WINDOWS /LIBPATH\MASM32\lib hello.obj
2005-8-16 11:06
0
雪    币: 201
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
记下了,3Q
2005-8-16 14:19
0
游客
登录 | 注册 方可回帖
返回
//