社区
C语言
帖子详情
请问如何在c文件中调用c++文件中的函数?
sea33
2003-04-01 03:46:48
请问如何在c文件中调用c++文件中的函数?我知道有一个 extern "C" , 但是好像加上去也没什么用,编译时出现 undefined reference 的错误。
...全文
145
10
打赏
收藏
请问如何在c文件中调用c++文件中的函数?
请问如何在c文件中调用c++文件中的函数?我知道有一个 extern "C" , 但是好像加上去也没什么用,编译时出现 undefined reference 的错误。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sea33
2003-04-01
打赏
举报
回复
多谢xorong(末日风暴) !
谢谢大家!
sea33
2003-04-01
打赏
举报
回复
多谢ckacka(小红帽)
疯狂的魔法
2003-04-01
打赏
举报
回复
你用的是C编译器还是C++编译器?
c++文件是什么文件?是静态库文件还是动态库文件还是源代码?
如果用的是C编译器
如果是动态库文件的化,C可以调用
如果是静态库文件的化,C无法调用
如果所源代码,编译器都不认识的语法嘛
如果用的是C++编译器
哪里都可以调用啊
直接在C的函数里调用就好了
比如:
extern "C" void func();
void func()
{
CLASS instance;
instance.member_function();
}
ckacka
2003-04-01
打赏
举报
回复
补充一下,你的 c++ 文件里面的函数也应该有 PASCAL 的申明
ckacka
2003-04-01
打赏
举报
回复
首先,你在你的 .h 文件里面,把你的函数申明为 _stdcall , c++ 里面也是,然后先编译成 .obj ,再搭配上你的头文件,就可以了!
注意,你的头文件不应该包含任何多余的代码或者指令,只应该有函数的申明,比如:
extern "C" int PASCAL EXPORT openDirectIO(HWND hl);
(说明:PASCAL 和 _stdcall 在意义上等价)
Bandry
2003-04-01
打赏
举报
回复
既然是混合编程,为什么不把“它”定义为C函数了?这样的话C\C++文件不就都可以使用了吗?
sea33
2003-04-01
打赏
举报
回复
我的程序是c和c++混编的,这种情况下在c文件中怎样调用c++文件中的函数
mubaosen
2003-04-01
打赏
举报
回复
extern "C" 是在C++中调用C编译器编译的函数的,现在基本上没有人用C编译器调用C++写的函数。一般来说用C++编译器的库都是按照C++的规则(好象你也可以指定C规则),而C较C++也现的晚所以也不太可能在C中会对此做直接支持,我还没见过相关的资料。当然我所说的C编译器是纯C的编译器,而不是现在流行的C/C++编译器。
sea33
2003-04-01
打赏
举报
回复
一定要用dll吗?
fansses
2003-04-01
打赏
举报
回复
dll
c
文件
函数
调用
c++
文件
函数
的编译方法
为什么要在c
文件
函数
里
调用
c++
文件
函数
? 很多现有代码都是c语言写的,我们需要对其进行扩展时,如果需要用到模板或类时,就需要使用
c++
编写,而且
c++
提供了STL,可以很方便的实现一些功能,所以使用
c++
编程可以减少工作量。 如何在c项目里编写
c++
文件
代码? 将
函数
申明放在头
文件
中
把要被c
函数
调用
的
c++
函数
的申明放在extern "C"{ ... }语句块里 标准
c++
的头
文件
包含不能放...
在C
中
调用
C++
函数
使用extern "C"可以实现在C语言代码
中
调用
C++
函数
的功能。实例分为5个
文件
:CallCpp.c CppPrint.cpp CppPrint.h CWrapper.cpp CWrapper.h其
中
CppPrint.cpp
中
是
C++
代码的实现;/* * CppPrint.h * */ #ifndef CPP_PRINT_H #define CPP_PRINT_H #include
C
中
如何
调用
C++
函数
1,在C
中
如何
调用
C++
函数
将
函数
用extern "C"声明; 将
C++
函数
声明为``extern "C"''(在你的
C++
代码里做这个声明),然后
调用
它(在你的 C 或者
C++
代码里
调用
)。例如: //
C++
code: extern "C" void f(int); void f(int i) { // ... } 然后,你可以这样使用 f(): /* C
如何在
C++
中
调用
C
函数
?
标题 如何在
C++
中
调用
C
函数
? 假如在一个项目
中
同时包含了C和
C++
,当
C++
调用
C
函数
时,以传统C编程#include "xxx.h"后,声明
函数
。由于main.cpp 是个
C++
代码,以C方式的
调用
,g++编译器无法通过编译。 解决方案一: 重写一个专门被
c++
用的头
文件
(可能存在是别人已经写好的头
文件
,我们无法修改等问题) e.g. 添加一个头
文件
tansfer.h extern "C" { #include "file1.h" #include "file2.h" } 最后在需要
调用
C
函数
的c
在
C++
中
调用
C
文件
中
的
函数
有时候在
C++
工程
中
可能需要将某些
函数
按照C的风格来编译,在
函数
前加extern “C”,意思是告诉编译器,将该
函数
按照C语言规则来编译。 比如在创建好的
C++
test.cpp
文件
中
想要
调用
另一个C的
函数
,流程分为以下几个步骤。 1.将C
文件
生成lib 首先创建C的静态库
文件
2.在C
中
写
C++
即将需要的
函数
的 .c与 .h
文件
3.生成解决方案后可以在Debug
文件
夹看到.lib
文件
4.在
C++
文件
中
进行如下配置 5.利用extern"C"包含C的头
文件
…是回到当前目录的上
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章