DLL目录问题

[复制链接]
查看11 | 回复7 | 2021-1-27 05:17:48 | 显示全部楼层 |阅读模式
大家好请教一下今天碰到个问题不解决的话程序目录会很乱

程序目录
C:\Test\Bin\Test.exe
C:\Test\Bin\Dll\DllA.dll
C:\Test\Bin\Dll\DllB.dll

调用关系
Test.exe----显式调用----->DllA.dll-----隐式调用---->DllB.dll
DllA隐式调用DllB.dll
Test.exe里面显式调用DllA.dll,
这时候Test.exe::LoadLibrary("C:\Test\Bin\Dll\DllA.dll");返回NULL,怎么办?

至于把DllB.dll放到c:\windows或system32文件夹的,不考虑。
分 -->
回复

使用道具 举报

千问 | 2021-1-27 05:17:48 | 显示全部楼层
把C:\Test\Bin\Dll\加入到path中去。
回复

使用道具 举报

千问 | 2021-1-27 05:17:48 | 显示全部楼层
LoadLibrary(_T("C:\\Test\\Bin\\Dll\\DllA.dll"))
GetLastError看返回的错误代码
回复

使用道具 举报

千问 | 2021-1-27 05:17:48 | 显示全部楼层
引用1楼BeanJoy的回复:把C:\Test\Bin\Dll\加入到path中去。
这和放到c:\windows或system32文件夹一个意思啊。
关键是几个厂家的DLL名字TMD有重复的,不能放一个PATH文件夹里。
回复

使用道具 举报

千问 | 2021-1-27 05:17:48 | 显示全部楼层
SetDllDirectory
回复

使用道具 举报

千问 | 2021-1-27 05:17:48 | 显示全部楼层
你这样load完全是可以的
“\”要换成"\\"
回复

使用道具 举报

千问 | 2021-1-27 05:17:48 | 显示全部楼层
把DllB.dll放到test.exe同目录下
回复

使用道具 举报

千问 | 2021-1-27 05:17:48 | 显示全部楼层
LoadLibrary失败
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行