能力值:
( LV2,RANK:10 )
|
-
-
2 楼
只要在你调用函数前面的地方饱含fun.asm就行了,如下
;-------------main.asm---------------
include.fun.asm
|
能力值:
( LV12,RANK:210 )
|
-
-
3 楼
MASM和C++是一样的, 包含函数声明头文件就可以了
不过链接的时候要同时指定两个OBJ文件
象这样:link ..... asm.obj fun.obj
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
不用呀,编译时会链接成一个OBJ,不用在link下指定
|
能力值:
( LV12,RANK:210 )
|
-
-
5 楼
我的意思是分别编译几个独立的源代码文件, 生成多个obj文件, 然后把这些obj文件连接成exe文件
|
能力值:
( LV4,RANK:50 )
|
-
-
6 楼
是不是需要用到public和extern操作符?
|
能力值:
( LV12,RANK:210 )
|
-
-
7 楼
默认就是public
声明函数可以用extern和externdef, proto也是可以的
要先分别把fun.asm和main.asm编译成fun.obj和main.obj,
然后连接时同时指定两个obj文件
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
就是radasm主页上面的那个CHM教程。里面有介绍多moudle的程序书写方法
简单的讲一下:
在项目文件里面加入moudle文件,然后如果是要使用外部变量就用extern
如果该模块中的一些变量需要给别的模块使用,就用public
如果是函数也是同样的方法
|
能力值:
( LV4,RANK:50 )
|
-
-
9 楼
我试了好久,都没有成功~~~
可否举一个简单的例子,或者上传一段简单的代码~~
A.asm
B.asm
B.inc
A文件里面调用B文件里面的函数
而A只需要include B.inc文件
就是C语言的风格
|
能力值:
( LV12,RANK:210 )
|
-
-
10 楼
这里有一个例子, 让它和masm32在同一个盘符下执行assemble.bat文件就可以编译连接了
|
能力值:
( LV4,RANK:50 )
|
-
-
11 楼
哦,原来在B.asm中也需要声明开始的一些东西啊~
就好像
.386
.model
了解了,真是谢谢~~~~~~~~
这里的人还真是挺热心的
|
能力值:
( LV4,RANK:50 )
|
-
-
12 楼
我在Winasm中不能连接成功~~~
winasm好像把两个文件编译成了一个obj文件
|
能力值:
( LV12,RANK:210 )
|
-
-
13 楼
Winasm不支持多模块程序
两个源文件一定要分别编译, 一起连接
|
能力值:
( LV4,RANK:50 )
|
-
-
14 楼
那什么集成开发环境支持多模块?
|
能力值:
( LV12,RANK:210 )
|
-
-
15 楼
RadAsm
|
能力值:
( LV4,RANK:50 )
|
-
-
16 楼
RadAsm
好像也不支持多个文件
|
能力值:
( LV12,RANK:210 )
|
-
-
17 楼
支持的, 只是默认不激活, 而且也不是太方便
工程选项里有个"编译模块", 选中前面的勾后就可以在构建菜单中激活对应的菜单项, 然后在工程中导入模块, 编译后把生成的obj文件导入工程就可以链接了, 详见chm帮助文件
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
具体可以参看winasm安装目录下面的sample目录里面的Module示例!
|
能力值:
( LV4,RANK:50 )
|
-
-
19 楼
OPTION PROC:PRIVATE
好像是这句话
|
能力值:
( LV12,RANK:210 )
|
-
-
20 楼
嗯,确实, 看到18楼的帖子我到WinAsm官网上去看了看, 已经升级到5.1.1.3版了,我自己的版本是很久以前的, 赶快升级. 我好长时间没有用WinAsm了, 现在发现它是支持多模块的
谢谢18楼的朋友
|
能力值:
( LV4,RANK:50 )
|
-
-
21 楼
研究了一下~~~
已经搞定了
OPTION PROC:PRIVATE是将函数声明为私有的~~
这个好像C++的类权限,但是不一样~~
然后将需要在其它文件中调用的函数加上public标识~~
就可以正常使用了~~
如果不要那个OPTION PROC:PRIVATE也可以~就标识全部函数都是public
都可以在其它文件中调用
其实关键不在这里,关键在于需要把非主文件设置成非编译文件
这样可以可以生成多个obj了
|
能力值:
( LV4,RANK:50 )
|
-
-
22 楼
希望版主可以收录成精华哦
哈哈,好多朋友其实都不知道这个方法吧~~
估计也都还是在用命令行的编译方法~~
相对来说集成开发环境还是比较好一些,方便一些~
容易找到代码的错误,编译也很方便~~
命令行的编译方式了解一下就好了~~~
|
|
|