所以基本上我不知道胡使用这个功能“ createLib”,但我似乎无法使用它:
auto createLibFunc = dlsym(lib, symbol.c_str());
这有效,我用dlopen打开了动态加载的lib,我可以用dlsym获得函数符号,但是我不知道如何处理ceateLibFunc();在我获取它之后,它应该类似于createLibFunc();。容易吗?这是createLibs函数:
extern "C" IDisplayModule *createLib()
{
return new LibNcurses();
}
最易读的解决方案恕我直言,是创建类型别名:
extern "C" typedef IDisplayModule* CreateLibT();
然后您可以使用它来声明函数指针的类型:
auto createLibFunc = reinterpret_cast<CreateLibT*>(dlsym(lib, symbol.c_str()));