dll调用的问题?

warsour 2009-04-15 09:46:14
程序当前目录下有两个目录,A目录和B目录,A目录里有个A.dll,B目录里有B.dll,
现在程序需要调用A目录下的A.dll,调用没问题,但A.dll又需要调用B.dll,
这时问题出现了,在控制台程序下可以正常调用,但在MFC下A.dll确无法调用B.dll
这是怎么一回事呢?
...全文
80 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xghuzd 2009-04-15
  • 打赏
  • 举报
回复
用"绝对路径"试一下.
warsour 2009-04-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yekoufeng 的回复:]
换个路径,只要在设置的环境变量的路径下,可能你会发现错误
[/Quote]

还是不起作用~
yekoufeng 2009-04-15
  • 打赏
  • 举报
回复
换个路径,只要在设置的环境变量的路径下,可能你会发现错误
warsour 2009-04-15
  • 打赏
  • 举报
回复
现在没法改变A.dll调用b.dll的调用方式,a.dll调用b.dll就是在程序当前目录下B目录下去找,可用MFC写的程序却找不到B.dll,
但控制台就可以
黄志义 2009-04-15
  • 打赏
  • 举报
回复
UP
[Quote=引用 2 楼 oyljerry 的回复:]
A.dll调用B.dll的时候用绝对路径,不要使用相对路径等..
[/Quote]
oyljerry 2009-04-15
  • 打赏
  • 举报
回复
A.dll调用B.dll的时候用绝对路径,不要使用相对路径等..
fandh 2009-04-15
  • 打赏
  • 举报
回复
是不是A.DLL因为路径原因,不能访问b.dll?
建议设置路径
oyljerry 2009-04-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 warsour 的回复:]
找到问题了,发现是调用CFileDialog,当前目录变成了被打开文件的目录了,所以DLL调用的时候找不到exe运行所在的目录,
这个怎么解释呢,CFileDialog到底做啥了?
[/Quote]
CFileDialog会修改当前目录,因而才会前面建议你用绝对路径,而不是相对路径
你可以CFileDialog使用完了以后,SetCurrentDirectory()重新设置回来当前目录
warsour 2009-04-15
  • 打赏
  • 举报
回复
找到问题了,发现是调用CFileDialog,当前目录变成了被打开文件的目录了,所以DLL调用的时候找不到exe运行所在的目录,
这个怎么解释呢,CFileDialog到底做啥了?

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧