欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[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());