Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C+中动态加载DLL+;适用于Linux平台 我尝试使用VisualStudio从Windows C++项目中使用同一个头和.CPP< /Cord>文件创建Linux C++项目。我正在使用下面的函数在Windows中动态加载DLL HINSTANCE hGetProcIDDLL=LoadLibraryA(sDllPath.c_str()); getplugininfo列表GetInfoList=(getplugininfo列表)GetProcAddress(hGetProcIDDLL,“getplugininfo列表”);_C++_Linux - Fatal编程技术网

在C+中动态加载DLL+;适用于Linux平台 我尝试使用VisualStudio从Windows C++项目中使用同一个头和.CPP< /Cord>文件创建Linux C++项目。我正在使用下面的函数在Windows中动态加载DLL HINSTANCE hGetProcIDDLL=LoadLibraryA(sDllPath.c_str()); getplugininfo列表GetInfoList=(getplugininfo列表)GetProcAddress(hGetProcIDDLL,“getplugininfo列表”);

在C+中动态加载DLL+;适用于Linux平台 我尝试使用VisualStudio从Windows C++项目中使用同一个头和.CPP< /Cord>文件创建Linux C++项目。我正在使用下面的函数在Windows中动态加载DLL HINSTANCE hGetProcIDDLL=LoadLibraryA(sDllPath.c_str()); getplugininfo列表GetInfoList=(getplugininfo列表)GetProcAddress(hGetProcIDDLL,“getplugininfo列表”);,c++,linux,C++,Linux,我认为这些函数来自 P>当到Linux C++项目时,我没有得到这些功能。 对于Linux C++,什么是代码< > HStase和 LoadLibraryA < /C> >?/P> < P>我在这里发布我的答案。谢谢大家的支持 typedef CPluginInfoList(*GetPluginInfoList)(void); #if _WINDLL HINSTANCE hGetProcIDDLL = LoadLibraryA(sDllPath.c_str()); #else

我认为这些函数来自

<> P>当到Linux C++项目时,我没有得到这些功能。
对于Linux C++,什么是代码< > HStase和<代码> LoadLibraryA < /C> >?/P> < P>我在这里发布我的答案。谢谢大家的支持

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

我把我的答案贴在这里。谢谢大家的支持

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

你正在寻找<代码> DLOpen< /COD>和 DLSym < /C> >谷歌= > dLOpenNog,C++有名字,所以例程需要一个外部“C”。界面也可以看到Boost.DLL:是的@ 0xC000 000 22L我已经发布了解决方案。你正在寻找<代码> DLOpen< /COD>和 DLSym < /C> >谷歌= > dLOpenNog,C++有名字,所以例程需要一个外部“C”。界面查看您也可以查看Boost.DLL:Yes@0xC0000022L我已经发布了解决方案。请记住,如果您希望在程序关闭时修复内存泄漏,则存在dlclose。如果您希望在程序关闭时修复内存泄漏,则存在dlclose。