1

我仔细研究并测试了以下 URL,共享库 (Linux) 中的调用函数得到分段错误 以及https://git.xeserv.us/Quora/dlsym-example/src/master/testprog.c。我的问题是如何将 dlsym 映射到类似于此 C 函数示例的非静态 C++ 成员函数。如果我用 C 函数语法代替非静态 C++ 成员函数,我得到一个空操作。

   void *lib;              /* void pointer named lib */
   void (*sayHello)(void); /* void pointer named sayHello */
   lib = dlopen("helloWorld.so", RTLD_NOW);

   *(void **) (&sayHello) = dlsym(lib,"_ZN19CDataTransferServer10InitializeEi13CC_SAMPLETYPEjjj");

任何帮助表示赞赏。

4

1 回答 1

1

考虑通过提取的重命名方法加载方法

readelf -Ws libmy.so

或者

nm -g libmy.o
于 2016-01-04T18:41:47.717 回答