社区
汇编语言
帖子详情
关于WIN32的汇编和C++的混编问题?
天轶_1
2003-10-18 06:16:19
我用BORLAND C++ BUILDER和VC6。0分别写了一个小函数,编译成OBJ后用MASM32调用
居然调用不了,会出错,我有在函数前面加下划线(_),究竟是为什么?向各位高手请教了,请问如何解决?谢谢。
...全文
33
12
打赏
收藏
关于WIN32的汇编和C++的混编问题?
我用BORLAND C++ BUILDER和VC6。0分别写了一个小函数,编译成OBJ后用MASM32调用 居然调用不了,会出错,我有在函数前面加下划线(_),究竟是为什么?向各位高手请教了,请问如何解决?谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
天轶_1
2003-10-20
打赏
举报
回复
有没有OMF转COFF的?
天轶_1
2003-10-19
打赏
举报
回复
不好意思,我吧“C”的C小写了,大写后可以编译了,但是MASM32那边还是通不过。
天轶_1
2003-10-19
打赏
举报
回复
不行啊,在extern处提示
[C++ Error] Unit1.cpp(10): E2059 Unknown language, must be C or C++
我用的是CB5。0
天轶_1
2003-10-19
打赏
举报
回复
没有加,好吧我试看看。
xiaonian_3654
2003-10-19
打赏
举报
回复
cui太厉害了,崇拜ing,原来是我一瓶子不满,半瓶子晃荡,
蚊子王
2003-10-19
打赏
举报
回复
borland的OBJ,LIB文件格式和MS的不同,前者是OMF,后者是COFF
用BCB带的coff2omf(在bin下可以找到)转换一下
天轶_1
2003-10-19
打赏
举报
回复
我把它帖上来,这是MASM32的ASM文件.
.586
.model flat, stdcall
option casemap :none
extern _ok:near
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
include \masm32\include\gdi32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\gdi32.lib
.data
.code
start:
call _ok
invoke ExitProcess,0
end start
这是C文件.CB5.0写的:
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
extern "C" void __stdcall ok();
void __stdcall ok()
{MessageBox(NULL,"mess is ok","ok",MB_OK);
}
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
请帮看看哪里有错?
天轶_1
2003-10-19
打赏
举报
回复
编译的时后
MASM32那边提示:failure during conversion to COFF:file invalid or corrupt
xiaonian_3654
2003-10-19
打赏
举报
回复
MASM那边不用加啊,这个叫做名字分裂规则
xiaonian_3654
2003-10-18
打赏
举报
回复
有没有 extern "C"?
要是没有就当然连接不成功了
蚊子王
2003-10-18
打赏
举报
回复
在C++函数申明里要加extern "C",否则函数不是前面加下划线那么简单了。
天轶_1
2003-10-18
打赏
举报
回复
我有用EXTERN说明,还有我不想用DLL来实现,那样太麻烦了。但是我在BC写的OBJ却能在别的BC程序中一起编译调用。
在 Visual
C++
中使用内联
汇编
,VC内联ASM
汇编
,混合使用C和
汇编
代码的程序(用__asm写c函数)
在 Visual
C++
中使用内联
汇编
VC内联ASM
汇编
混合使用C和
汇编
代码的程序(用__asm写c函数)
C#微软培训资料
14.4 继承中关于属性的一些
问题
.169 14.5 小 结 .172 第四部分 深入了解 C#.174 第十五章 接 口 .174 15.1 组件编程技术 .174 15.2 接 口 定 义 .177 15.3 接口的成员 .178 15.4 接口的实现 .182 ...
vs2022 x64 C/
C++
和
汇编
混编
vs环境下的C/
C++
项目和
汇编
混合编译
汇编
语言-与
C++
混合编程
1.嵌入
汇编
高级语言和
汇编
语言 给软件开发通常采用高级语言,以提高开发效率 某些部分利用
汇编
语言,以提高程序的运行效率 ▶
汇编
语言的优点 开发的程序占用存储空间小... ▶直接在C/
C++
语言的源程序中插入
汇编
语言
CMake进行C/
C++
与
汇编
混合编程
要非常注意名称粉碎的
问题
, 函数在
C++
编译后的名称, 与C编译后的名称是完全不同的, 为了确保能够找到对应的名称, 如果你要使用
C++
特性必须加上extern "C"让
C++
函数以C的名称粉碎的方式进行
汇编
语言和C的名称粉碎结果...
汇编语言
21,453
社区成员
41,602
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章