Я внимательно изучил и протестировал следующие URL-адреса, Вызов функции в разделяемой библиотеке (Linux) получить ошибку сегментации
так же как https://git.xeserv.us/Quora/dlsym-example/src/master/testprog.c.
Мой вопрос заключается в том, как отобразить dlsym на нестатическую функцию-член C ++, подобную этому примеру с функцией C. Если я заменяю синтаксис функции C на нестатическую функцию-член C ++, я получаю no-op.
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
Других решений пока нет …