Как сопоставить dlsym с нестатической функцией-членом C ++ способом, аналогичным функции C?

Я внимательно изучил и протестировал следующие 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");

Любая помощь приветствуется.

1

Решение

Попробуйте загрузить метод по его искаженному имени, извлеченному с помощью

readelf -Ws libmy.so

или же

nm -g libmy.o
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector