专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Linux/Unix

获取Linux 动态库SO下的函数有关问题

发布时间:2011-06-27 17:37:12 文章来源:www.iduyao.cn 采编人员:星星草
获取Linux 动态库SO下的函数问题
test.cpp文件下
CTe te;

extern "c" int Init(void *pInfo)
{
  ...
  te.Init(pInfo);
}

-----------------------------------------
另外class CTe自身有Te.h Te.cpp

我把这三个文件编译打包成SO
其他模块从这个SO获取函数,能够获取到test.cpp中的Init函数,但是需要怎样才能获取到在test.cpp下定义的类变量te的其他函数呢?

大家知道吗?谢谢


------解决方案--------------------
nm,objdump。
------解决方案--------------------
要用纯虚类的办法才行。

然后通过一个导出函数返回一个基类的指针。
class CTebase {
public:
virtual void func1();
...
};

class CTe :public CTebase
{
void func1(){
//实现
}
}



然后在so中可以提供一个导出函数

extern "c" CTebase × GetCTe{
return new CTe ();
}


用的时候先获取指针就可以用了


自己google一下 “C++ dlopen mini HOWTO” 来看看吧

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: