为何exe不调用当前目录下的dll?

claider 2007-04-05 11:15:59
有工程A,输出为A.dll;工程B输出为B.exe。经设置,将二工程输出的dll和exe均放到..\Debug\目录下。且将工程A调试调用的Executable for debug sessions设置为..\debug\B.exe。
很奇怪的是:
情况一、若将工程A设置为Active Project,则按F5或者Ctrl+F5,均可正常执行B.Exe并调用A.dll的相关函数;
情况二、若将工程B设置为Active Project,则可启动B.exe,但却无法调用A.dll的相关函数。
情况三、直接双击运行b.exe则很奇怪地对同一目录下的A.dll“熟视无睹”,无法调用A.dll。与情况二相同。检测GetlastError,则返回126,无法找到模块。

故向诸位求助之!在此写过!
...全文
625 22 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
magicyang87 2007-04-21
  • 打赏
  • 举报
回复
解决了就好
BeRoy 2007-04-10
  • 打赏
  • 举报
回复
解决了,因为A.dll还依赖于其他的other.dll。但我忘记拷到那个目录下了。
=============
晕厥...
逸学堂 2007-04-10
  • 打赏
  • 举报
回复
项目->属性->调试 设置工作目录为存放exe,dll的目录
claider 2007-04-10
  • 打赏
  • 举报
回复
我在我的blog里面记录了这个问题
感谢诸位的解答,稍后结帖。
「已注销」 2007-04-09
  • 打赏
  • 举报
回复
晕!!
claider 2007-04-09
  • 打赏
  • 举报
回复
解决了,因为A.dll还依赖于其他的other.dll。但我忘记拷到那个目录下了。
ben_jiang 2007-04-09
  • 打赏
  • 举报
回复
哈哈,人品问题啦!
claider 2007-04-09
  • 打赏
  • 举报
回复
把debug目录添加到PATH变量里面了,还是不行
claider 2007-04-09
  • 打赏
  • 举报
回复
回复人:BeRoy(失眠) ( 二级(初级)) 信誉:100 2007-04-09 15:21:45 得分:0
?
LoadLibrary用绝对路径看看,我用2005,debug的时候,VC似乎会改变你的currentdirectory,将其指定到你的工程根目录,而不是DEBUG目录
-----------------------
我把Debug目录放到跟工程根目录平级了,这样方便些
magicyang87 2007-04-09
  • 打赏
  • 举报
回复
从VC6就是了,从IDE中打开时当前目录会设定为工程所在目录而非DEBUG或RELEASE目录,不过单独执行时会恢复正常
BeRoy 2007-04-09
  • 打赏
  • 举报
回复
LoadLibrary用绝对路径看看,我用2005,debug的时候,VC似乎会改变你的currentdirectory,将其指定到你的工程根目录,而不是DEBUG目录
claider 2007-04-09
  • 打赏
  • 举报
回复
up
magicyang87 2007-04-06
  • 打赏
  • 举报
回复
用RELEASE编译一下试试吧,或者再REBUILD ALL一下,问题3确实是个问题。
claider 2007-04-05
  • 打赏
  • 举报
回复
回复人:palmax(准备学习PHP) ( 一星(中级)) 信誉:105 2007-4-5 11:47:09 得分:0
?

在工程属性里的debug页面设置一下 Working Directory
------------------
设过了好像还是没有用
claider 2007-04-05
  • 打赏
  • 举报
回复
回复人:magicyang87(magicyang) ( 二级(初级)) 信誉:100 2007-4-5 11:46:42 得分:0
?

你的EXE文件中是LoadLibrary ("a.dll")吗?如果是那问题1,2都是正常的,3没碰到过,等高手吧,帮顶。
--------------
是的
palmax 2007-04-05
  • 打赏
  • 举报
回复
在工程属性里的debug页面设置一下 Working Directory
magicyang87 2007-04-05
  • 打赏
  • 举报
回复
你的EXE文件中是LoadLibrary ("a.dll")吗?如果是那问题1,2都是正常的,3没碰到过,等高手吧,帮顶。
mochen5460 2007-04-05
  • 打赏
  • 举报
回复
mark
claider 2007-04-05
  • 打赏
  • 举报
回复
显式,用LoadLibrary
_V_ 2007-04-05
  • 打赏
  • 举报
回复
你是显式调用dll还是隐式?
加载更多回复(2)

15,473

社区成员

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

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