Chinaunix
标题:
C调用C++
[打印本页]
作者:
yuanchengjun
时间:
2007-04-29 11:35
标题:
C调用C++
去年琢磨很长时间,贴出来共享。
依次执行:
make
make test
test
[
本帖最后由 yuanchengjun 于 2007-4-29 13:15 编辑
]
CALLCPP.zip
2007-04-29 11:35 上传
点击文件名下载附件
154.03 KB, 下载次数: 764
源文件及程序
作者:
yuanchengjun
时间:
2007-04-29 15:35
自己顶一下。
我相信还是有一部分人看不懂的。
作者:
yuanchengjun
时间:
2007-04-30 13:34
顶!顶!顶!
谁明白了?解释一下。
作者:
cjaizss
时间:
2007-11-03 10:57
C++要给C调用的外部接口可以加上extern "C",这样编译的时候符号名就不会变。偶昨天晚上那么整,纯属吃饱了撑的,瞎胡闹,hoho
作者:
zhujiang73
时间:
2007-11-03 16:10
标题:
回复 #1 yuanchengjun 的帖子
感觉需要用 C 调用 C++ 的情况不多,需要用 C++ 调用 C 的情况很多。不过动态加载 C++ 共享库时需要用 C 风格的 Factory Method ,不然 dlsym 不能工作。
作者:
yuanchengjun
时间:
2007-11-03 23:34
这里,C把C++的虚函数表做出来了,没做夹层,直接调用对象的方法。
不过一般情况下别用,因为和C++编译器实现相关了,虽然大多编译器支持,但C++标准应该没有规定C++编译器必须这么实现的。
这份实现,也可以直接用一定规则的C++类来调用,没什么说的,因为本来就是C++类写的。
平时调用,额外注意:
符号名称要一致,
如果windows还要注意调用方式,__stdcall ??
C++导出符号时,没有固定的标准!各家编译器会不一样的。一般会用C方式导出,不过没有函数重载等效果了。
[
本帖最后由 yuanchengjun 于 2007-11-3 23:38 编辑
]
作者:
zft19
时间:
2008-11-21 11:04
你对虚函数表理解的还是挺清楚的
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2