c++反射代理如何实现?

le284 发布于 2014/01/10 15:19
阅读 971
收藏 1
c++

【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”

现在要利用c++实现一个类似于java的反射代理功能,希望大神们给出一些建议。

功能描述:

需要写一个代理模块,我会调用这个模块的invoke方法,然后传入四个字符串,1)/opt/libXXX.so; 2) libXXX.so中的某个类名,ClassA,3) ClassA的某个方法,getInfo; 4)getInfo的参数列表 list<paras>

invoke的作用就是加载libXXX.so动态链接库,然后根据传入的类名,方法名,参数列表真正的调用libXXX.so中的getInfo方法。

请问各位,这样的需求如何实现?? 谢谢~ 

加载中
0
BaiYang
BaiYang
这个算不上真正的反射,只要了解各 C++ 编译器的名称粉碎算法以及对于类方法的调用约定即可。AngelScript 的 Native bind 部分有针对 VC、GCC 以及各个硬件平台的现成实现。
0
jiuyueshouyi
jiuyueshouyi
我可以提供一些参考。 1.这个很简单,系统api可以直接使用,根据库命字符串加载so库 2.获取类名就需要库里面提供一个全局的c函数,在这个函数里面new出类对象,而这个c函数名是你必须知道的 3.有了类对象,它的成员函数就直接调用吧,如果你只想看有没有你指定的成员函数,你就自己实现一个查询方法吧 4.同3
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部