Для глобальных функций и статических функций-членов легко получить void *adder с помощью reinterpret_cast, но как получить его для нестатической функции-члена, указатель которой нельзя просто привести к void*? Например:
Код: Выделить всё
#include
#include
struct __attribute__((visibility("default"))) A {
static void f() {}
void g() {}
};
void* fAddr = reinterpret_cast( &A::f );
//void* gAddr = ??? ( &A::g );
int main() {
Dl_info info;
dladdr(fAddr, &info);
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79837302/getting-address-of-non-static-member-function-for-locating-its-shared-library[/url]
Мобильная версия