[英]Dynamic loading DLL in C++ for Linux Platform
我正在嘗試使用 Visual Studio 的 Windows C++ 項目中的相同頭文件和.cpp
文件創建 Linux C++ 項目。 我正在使用以下函數在 Windows 中動態加載 DLL
HINSTANCE hGetProcIDDLL = LoadLibraryA(sDllPath.c_str());
GetPluginInfoList GetInfoList = (GetPluginInfoList)GetProcAddress(hGetProcIDDLL, "GetPluginInfoList");
我認為這些函數來自<windows.h>
當涉及到 Linux C++ 項目時,我沒有獲得這些功能。 對於 Linux C++, HINSTANCE
和LoadLibraryA
的替代品是什么?
我在這里發布我的答案。 謝謝大家的支持
typedef CPluginInfoList(*GetPluginInfoList)(void);
#if _WINDLL
HINSTANCE hGetProcIDDLL = LoadLibraryA(sDllPath.c_str());
#else
void* hGetProcIDDLL = dlopen(sDllPath.c_str(), RTLD_LAZY);
#endif
#if _WINDLL
GetPluginInfoList GetInfoList = (GetPluginInfoList)GetProcAddress(hGetProcIDDLL, "GetPluginInfoList");
#else
GetPluginInfoList GetInfoList = (GetPluginInfoList)dlsym(hGetProcIDDLL, "GetPluginInfoList");
#endif
GetInfoList(); //Function Call
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.