社区
C语言
帖子详情
急问:想在C文件里面重用一些C++的函数,该怎么做?
Aladdin898
2005-08-10 05:26:12
如题,非常感谢!!!
...全文
91
3
打赏
收藏
急问:想在C文件里面重用一些C++的函数,该怎么做?
如题,非常感谢!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Aladdin898
2005-08-11
打赏
举报
回复
非常感谢~~~~
jixingzhong
2005-08-10
打赏
举报
回复
用c语言调用c++做成的动态链接库:
链接库头文件:
//head.h
class A
{
public:
A();
virtual ~A();
int gt();
int pt();
private:
int s;
};
.cpp
//firstso.cpp
#include <iostream>
#include "head.h"
A::A(){}
A::~A(){}
int A::gt()
{
s=10;
}
int A::pt()
{
std::cout<<s<<std::endl;
}
编译命令如下:
g++ -shared -o libmy.so firstso.cpp
这时候生成libmy.so文件,将其拷贝到系统库里面:/usr/lib/
进行二次封装:
.cpp
//secso.cpp
#include <iostream>
#include "head.h"
extern "C"
{
int f();
int f()
{
A a;
a.gt();
a.pt();
return 0;
}
}
编译命令:
gcc -shared -o sec.so secso.cpp -L. -lmy
这时候生成第二个.so文件,此时库从一个类变成了一个c的接口.
拷贝到/usr/lib
下面开始调用:
//test.c
#include "stdio.h"
#include "dlfcn.h"
#define SOFILE "sec.so"
int (*f)();
int main()
{
void *dp;
dp=dlopen(SOFILE,RTLD_LAZY);
f=dlsym(dp,"f");
f();
return 0;
}
编译命令如下:
gcc -rdynamic -s -o myapp test.c
运行Z$./myapp
10
$
PMsg
2005-08-10
打赏
举报
回复
C++有部分是从C继承发展来的
剩下的自己实现吧……
C++
函数
模板(模板
函数
)详解
C++
函数
模板(模板
函数
)详解定义用法:
函数
模板的原理延申用法2.1为什么需要类模板2.2单个类模板语法2.3继承中的类模板语法案例1:案例2:2.4类模板的基础语法2.5类模板语法知识体系梳理1.所有的类模板
函数
写在类的...
Modern
C++
学习笔记——
C++
函数
式编程
C++
函数
式编程看这一篇就够了,建议收藏~~~!!! Modern
C++
学习笔记是一系列介绍现代
C++
新特性的文章,结合《effective modern
C++
》说明了如何更好的使用这些新特性。相互讨论,共同学习,不断成长
std::function介绍与使用
std::function是
C++
标准库中的一个
函数
对象,类似于一个可
重用
的
函数
指针。它允许我们以一种更加灵活的方式调用
函数
,而不必了解其具体实现。使用std::function可以让我们将
函数
作为参数传递、在
函数
内部调用以及在...
c++
内联
函数
(讲解的TM真好)
在
C++
中我们通常定义以下
函数
来求两个整数的最大值: 复制代码 代码如下: int max(int a, int b) { return a > b ? a : b; } 为这么一个小的操作定义一个
函数
的好处有: ① 阅读和理解
函数
max 的调用...
C++
函数
(课本)
标识符作用域 6多
文件
程序结构 6命名空间 6终止程序执行 6
函数
C++
有两种程序模块:
函数
(function)和类(class)任何
c++
的应用程序都是由各种标准库提供的模块和程序员自定义的模块组装而成。...
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章