如何用c语言调用c++做成的动态链接库

原创 2005年05月26日 20:51:00

链接库头文件:
//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
$

如何用c语言调用c++做成的动态链接库

如何用c语言调用c++做成的动态链接库:链接库头文件://head.hclass A{        public:        A();        virtual ~A();        i...
  • jixingzhong
  • jixingzhong
  • 2006年11月14日 10:34
  • 2252

如何用c语言调用c++做成的动态链接库

如何用c语言调用c++做成的动态链接库:链接库头文件://head.hclass A{        public:        A();        virtual ~A();        i...
  • koko1998
  • koko1998
  • 2008年02月07日 10:02
  • 455

C#调用C/C++动态链接库

C#调用C/C++动态链接库示例
  • u012156133
  • u012156133
  • 2013年11月01日 15:18
  • 3644

用java调用C或C++动态链接库原来如此简单

用java调用C或C++动态链接库原来如此简单
  • javaniuniu
  • javaniuniu
  • 2017年03月31日 11:30
  • 1530

C语言调用MATLAB生成的动态链接库的具体方法

本文具体讲述了一种C语言调用MATLAB生成的动态链接库的方法。
  • Arthur_ZHU
  • Arthur_ZHU
  • 2015年05月22日 11:03
  • 1494

C#调用C/C++动态链接库(.dll)详解

第一篇编译C的动态连接库 在实际工作中,我们经常会将C语言中的.lib和.h文件(静态库)编译成动态连接库.dll文件(这里只提供这两种文件,没有完整的工程),以提供给其他语言平台调用。 ...
  • tery001
  • tery001
  • 2014年06月04日 15:21
  • 1661

Linux-(C/C++)动态链接库生成以及使用(libxxx.so)

linux静态库生成与使用:http://www.cnblogs.com/johnice/archive/2013/01/17/2864319.html Linux中so文件为共享库,与window...
  • qq_33850438
  • qq_33850438
  • 2016年07月24日 17:29
  • 14883

用UEStudio写C++程序

由于内存有限,想还有什么可以拿来写程序的。于是就试了一下UEStudio6.0和Editplus,虽然Editplus是我的最爱,但是UEStudio增加了项目管理功能,支持N多编译器。在这里我使用的...
  • zdhsoft
  • zdhsoft
  • 2007年03月01日 15:25
  • 2115

如何从Excel 中调用C/C++写的动态链接库函数

看到个挺好的资源,推荐下; 虽然没有解答我想找的问题,但是这么详细真的很不错。 如果图片无法显示,不如到原始网站看。 https://sites.google.com/site/jrlhost/li...
  • stereohomology
  • stereohomology
  • 2015年07月03日 19:33
  • 2513

[转]关于C与C++中互相调用动态链接库的问题

这两个月埋首基础课程,忽略了技术的学习。间接就冷落了CSDN了。借这次软件工程作业,重新拾回日志工作。 Normal 0 7.8 磅 0 2 false false false MicrosoftIn...
  • lightyearwp
  • lightyearwp
  • 2010年12月05日 22:31
  • 5436
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何用c语言调用c++做成的动态链接库
举报原因:
原因补充:

(最多只允许输入30个字)