簡體   English   中英

Linux 平台的 C++ 動態加載 DLL

[英]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++, HINSTANCELoadLibraryA的替代品是什么?

我在這里發布我的答案。 謝謝大家的支持

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM