[C++][Dll]dll调用其他路径下的dll的简单方法
程序员文章站
2022-06-25 19:21:10
...
1.设置延时加载其他dll
项目属性--》连接器--》输入--》延迟加载的DLL,在这里填写dll的全称,如pci8408.dll
2.在dll被程序加载的时候更新一下dll的搜索路径(一般在dll中的InitInstance函数或者dllmain函数中添加)
//change path
std::string szPath;
char szBuff[MAX_PATH] = { 0 };
//在dllmain里_AtlBaseModule会提示找不到,添加一下alt的相关东西就行
HMODULE hModuleInstance = _AtlBaseModule.GetModuleInstance();
GetModuleFileNameA(hModuleInstance, szBuff, MAX_PATH);
szPath = szBuff;
szPath = szPath.substr(0, szPath.rfind('\\'));
#ifdef _M_IX86
szPath += "\\IOCard\\win32\\bin";//请将路径换一下,这个是我自己的路径
#endif // _M_IX86
#ifdef _M_X64
szPath += "\\IOCard\\win64\\bin";//请将路径换一下,这个是我自己的路径
#endif // _M_X64
//这步最好打个断点看一下文件夹的路径对不对
SetDllDirectory(szPath.c_str());
上一篇: windows下Python调用dll