如何以类似于 C 函数的方式将 dlsym 映射到非静态 C++ 成员函数?
How to map dlsym to a non-static C++ member function in a manner similar to a C function?
我仔细研究并测试了以下网址,Calling function in shared library (Linux) get Segmentation Fault
以及 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");
感谢任何帮助。
考虑通过
提取的错位名称加载方法
readelf -Ws libmy.so
或
nm -g libmy.o
我仔细研究并测试了以下网址,Calling function in shared library (Linux) get Segmentation Fault 以及 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");
感谢任何帮助。
考虑通过
提取的错位名称加载方法readelf -Ws libmy.so
或
nm -g libmy.o