一个DLL没有找到另一个DLL - 错误126

时间:2015-03-30 18:01:11

标签: c++ dll mfc

我有一个问题,我一直试图解决好几天而且找不到来源。我已经阅读了几个关于这个问题的博客,但没有一个对我有用。 Stack Overflow上存在一个几乎完全描述我的问题的问题。

内容如下:

  

“我有一个加载dll的MFC .exe。 .dll是动态链接的   到MFC。我得到的错误是126,也就是说,在尝试之后   加载.dll失败,GetLastError()返回126:“指定的   无法找到模块“。我尝试将.dll放在目录中   我的.exe在加载它 - 仍然没有找到它。我什至   尝试对.dll的路径进行硬编码,但仍然没有找到它。“

对这个问题的回答是:

  

“可能不是DLL本身,而是其中一个依赖项不可能   找到。使用Dependency Walker实用程序来标识所有相关DLL。   如果缺少一些依赖的DLL,它会警告你。“

程序员问这个问题是能够在此基础上解决问题,但我没有那么幸运。我没有想法,希望有人可以帮我解决这个令人沮丧的问题。

我99%确定这是我的情况。在我的情况下,我的DLL(My.dll)导入另一个库。我将其称为Suspect.dll和Suspect.lib。

在我的DLL的“链接器输入”下的属性页中,可疑导入库包含在列表中且路径正确:Suspect.lib。

当我运行应用程序时,我可以通过IDE的输出窗口看到My.dll已加载,但随后被卸载。

此应用程序过去成功运行,但我使用CMake从VS2008项目文件转到makefile,然后返回。我相信有些设置在这个过程中发生了变化,但我只是没有看到它。

如果有人可以帮助我,我会非常感激!

0 个答案:

没有答案