DLL无法加载的问题,百思不得其解,哪位大大能教一下下?

rick29 2005-06-04 11:06:06
高手们好,小弟现在碰到了一个比较郁闷的问题,症状如下:

  一个主进程A,一个DLL B,另一个DLL C,B被A加载,C被A加载,同时B被C加载。即有:
  B-->A 隐式链接(通过.lib)
  B-->C 隐式链接(通过.lib)
  C-->A 显式链接(通过LoadLibrary)(C被A加载时,B相当于又被A加载了一次?)
  我的思想是使B成为一个API DLL,B中的函数被C调用,同时将调用结果告知A。现在的问题是,我在C中如果只是在工程里加入了B的.lib文件和.h文件并生成DLL,则A可以通过LoadLibray来链接C。而如果我在C中尝试着调用B中的函数(甚至于这个函数都没有执行到,只是在代码中写上一句调用而已),则再编译生成的DLL,就不能被A的LoadLibrary加载(返回NULL)。这是为什么??
  另外我发现,如果我在C的工程中,设A为宿主进程,则无论按Ctrl-F5或F5,执行A后都可以加载C。而如果我是在A的工程中执行A,则在上述情况下,无法加载C。
  无比郁闷,这么妖怪的问题啊。
...全文
70 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sboom 2005-06-05
  • 打赏
  • 举报
回复
用GetLastError看看返回错误码是什么
icansaymyabc 2005-06-05
  • 打赏
  • 举报
回复
哈哈哈,是你的修改还未编译生效的原因。
有什么好慌的?
rick29 2005-06-04
  • 打赏
  • 举报
回复
没天理啊,刚这里说完,重新生成了一下A工程,问题就不出现了。啊,我有点慌……

15,472

社区成员

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

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