当前位置:  技术问答>linux和unix

LINUX环境C++动态链接库如何才能被C应用程序调用?急急!

    来源: 互联网  发布时间:2016-08-05

    本文导语:  最近做的项目涉及到用C应用程序调用第三方提供的C++动态链接库,是在LINUX环境下, 现在又以下几点不明白,请高手指教: 1、C++动态链接库到底是否可以被C程序调用,毕竟编译器不同 2、若可以,C++动态链接库中涉...

最近做的项目涉及到用C应用程序调用第三方提供的C++动态链接库,是在LINUX环境下,
现在又以下几点不明白,请高手指教:
1、C++动态链接库到底是否可以被C程序调用,毕竟编译器不同
2、若可以,C++动态链接库中涉及到类了,如何向C程序提供接口,毕竟在C中不能声明类
3、若用C程序调用动态链接库,是用动态链接,还是用动态加载,有区别吗?
   对方说需要用动态加载方式,即用dlopen()函数进行加载,不明白。
谢谢

|
有个建议:你再写个C++库,把第三方的类转成API。

关于第3点,动态加载可以参考下面的文章,上面有例子:
http://www.ibm.com/developerworks/cn/linux/sdk/dll/index.html

|
dlopen的方法不是必须的吧。
通常C调用C++的库函数需要extern "C"和将类封装成函数, 以下十个简单的例子, AIX环境

/**
 * @file        foo.h
 */

#ifndef FOO_H
#define FOO_H


#ifdef __cplusplus
extern "C" {
#endif

int foo_hello(void);

#ifdef __cplusplus
}
#endif

#endif /* FOO_H */


/**
 * @file        foo.cpp
 */

#include 
using namespace std;

#include "foo.h"

class foo {
public:
        foo();
        ~foo();
        int hello();
};

foo::foo()
{
        cout 

    
 
 

您可能感兴趣的文章:

  • Linux c++虚函数(virtual function)简单用法示例代码
  • 为什么linux下的C++程序这么少见? 请问那里有linux下的C++程序?什么类型的程序都可以.
  • Linux c++库boost unordered_set数据插入及查找代码举例
  • linux的帮助文件在什么地方啊,我想看看关于c++的帮助文件。另外从哪里能搞到c++的类库说明阿
  • unix/Linux下c++ boost thread库读写锁介绍
  • 装好了ubuntu怎样学习c++,linux下C++学习的环境软件是什么?
  • Linux c++库boost unordered_map数据插入及查找代码举例
  • stlport c++库如何移植到arm-linux平台替代gnu c++标准库
  • Linux c++ boost库正则表达式用法
  • 求教linux C++学习之路!
  • Windows和Linux下C++类成员方法作为线程函数方法介绍
  • C++在linux下是闲得蛋疼?
  • Linux 下c++开发error while loading shared libraries问题解决
  • Linux下怎样编译C++程序?
  • Linux和windows下用mysql c++ library操作Mysql数据库
  • 关于Linux下C++开发的问题
  • linux菜鸟请教:C++的学习
  • linux下的C++编译器怎样使用?
  • Linux C++ 网络库 Muduo
  • 请问,在Linux和Unix下,有没有像Borland C++ 3.1 for DOS或Visual C++ 6.0这样的开发工具?
  • C++在linux下意味者什么
  • Linux添加系统调用时如何调用C语言库函数
  • linux中为什么系统调用比普通函数调用更费时间?
  • 为什么我的BEAN 在WIN2000中调用没有问题,但在LINUX中调用有问题
  • 如何在LINUX下用一个普通文件调用一个自己编写的调用系统的文件
  • LINUX下系统调用是不能中断的,要怎么改造成可以中断系统调用?
  • 请问linux中的系统调用号是如何跟系统调用表对应起来的
  • 新手:Linux下使用第三方C库(openssl),是调用.so文件还是直接调用.h文件?
  • linux系统调用问题
  • 我如何调用 内核函数 /linux/fs 里面的内核 函数:比如 自己的程序调用 ext3_delete_inode
  • 关于Linux系统调用的问题!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 怎样开发在LINUX 上运行的应用程序,像WINDOWS桌面应用程序一样
  • linux开发的应用程序部署到其他linux的问题
  • 新手提问:在REDHAT LINUX 下开发应用程序,用什么工具好,除了 LINUX C以外
  • 菜鸟求助:Linux 应用程序后台启动后关闭窗口程序退出
  • 学了linux程序设计后能不能编写出应用程序
  • 请问能否在linux实现一个应用程序访问另外一个程序的内存数据?
  • 几个Linux应用程序开发的问题请教LINUX程序员!
  • linux 桌面应用程序和web应用程序编写常用的语言
  • 编程语言 iis7站长之家
  • 使用linux内核+qt开发的应用程序需要开源吗
  • linux驱动程序是怎样通过内核和应用程序通信,还有是怎样和硬件通信,跪求求解,谢谢高手留言。
  • 求教:Linux下Java应用程序的重启脚本
  • [求助]如何在linux下运行windows应用程序????
  • 用SecureCRT或Putty 远程启动linux服务器上的一个应用程序,但是当我关掉SecureCRT的时候,应用程序也被关掉了,怎么能够做到我关闭客户
  • 在Linux应用程序模式下如何设置中断!!!
  • 如何获取应用程序的当前路径(Linux)
  • 怎样设置应用程序随linux启动而启动!
  • linux 驱动中想用 kobject_uevent 和应用程序通讯. 但不知如何用?
  • 哪位大哥知道?我怎样知道LINUX redhat 7.2下声音设备由哪个应用程序占用?
  • 嵌入式Linux换了内核后,运行应用程序显示Killed
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3