社区
C语言
帖子详情
请问如何在c文件中调用c++文件中的函数?
sea33
2003-04-01 03:46:48
请问如何在c文件中调用c++文件中的函数?我知道有一个 extern "C" , 但是好像加上去也没什么用,编译时出现 undefined reference 的错误。
...全文
168
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
文件
中
调用
C++
文件
中
的
函数
1.cpp
文件
中
的内容 #include "mytest.h" #include <iostream> using namespace std; int add(const int a, const int b) { cout << "a=" << a << endl; cout << "b=" << b << endl; return (a + b); } 2.hpp
文件
中
的内容 在
函数
声明时
c语言
文件
调用
c++
函数
1.CPP
文件
中
的内容 #include “mytest.h” #include using namespace std; int add(const int a, const int b) { cout << “a=” << a << endl; cout << “b=” << b << endl; return (a + b); } 2.头
文件
中
的内容 在
函数
声明时添加extern “C”,就可以在C
中
调用
。为了同时可以在
C++
中
08 C语言
中
调用
C++
的方法(
函数
),使用回调
函数
不使用
C++
动态库
C语言
中
调用
C++
的方法(
函数
),使用回调
函数
不使用
C++
动态库 作者 将狼才鲸 创建日期 2022-03-31 C语言
中
想
调用
C++
中
的方法,或者使用
C++
类
中
的数据,有三种方法: 一是将
C++
编译成动态库供C语言
中
调用
; 二是使用Makefile 将
C++
和C分别用g++和gcc编译成.o,再在链接的时候实现C语言找到
C++
的方法入口进行
调用
; 三是
C++
调用
C语言的一个
函数
将自己的方法通过回调
函数
的方式注册进C语言模块,C语言模块自己择机在需要的时候进行
调用
。 我觉得第三种
C语言
70,040
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章