LoadLibrary 失败,错误代码为 14001

Posted

技术标签:

【中文标题】LoadLibrary 失败,错误代码为 14001【英文标题】:LoadLibrary fails with error code 14001 【发布时间】:2011-11-21 02:03:25 【问题描述】:

我正在使用 Visual C++ 2008 Express Edition 来创建仅资源的 DLL。 我面临的问题是运行使用 DLL 的应用程序 在我以外的另一台计算机上导致 LoadLibrary() 函数失败,错误代码为 14001。

网上搜了一下,好像是电脑的依赖问题 运行缺少 Microsoft Visual C++ 2008 Redistributable Package 库的应用程序。

我的第一步是安装最新的 Microsoft Visual C++ 2008 Redistributable Package,但这并没有解决问题。

我还更改了我的项目设置,因此 DLL 使用静态 CRT 链接进行编译,假设 这样我就可以摆脱依赖了。

这些选项似乎是其他有相同问题的人的解决方法。 非常感谢您向哪个方向看的任何想法。

谢谢

================================================ ====================================

感谢您的回答。

Dependency Walker 和事件查看器都指示了并行配置 问题,因为我缺少 VC++ Redistributable Package 的调试版本库。

一不小心把我的DLL编译成debug模式,release模式重新编译解决了问题。

【问题讨论】:

我认为有一个选项可以真正创建仅资源的 DLL;例如它不会生成 DllMain 并拉入 MFC、ATL、CRT 等。尝试链接器/高级 - 无入口点 【参考方案1】:

尝试通过 Dependency Walker 隔离缺失的库:

http://www.dependencywalker.com/

只需使用此工具在第二台计算机上运行您的应用程序,它就会告诉您缺少哪个库。确保您安装了正确版本的 Visual C++ 2008 Redistributable Package;其中有两个,对于带有 SP1 和没有任何 SP 的 VS 2008...

【讨论】:

【参考方案2】:

查看事件查看器。 Windows SideBySide 很有可能会出现错误,解释缺少哪个程序集。 很可能它是一个 VC CRT 运行时,您必须将其与您的 dll 捆绑在一起。

(VC 可再发行组件可在此处获得:http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=29)

【讨论】:

【参考方案3】:

我遇到了同样的问题,但使用的是 Visual Studio 2013;需要清单的 DLL 调试集。在我的情况下,必须将 Microsoft.DTfW.DHL.manifest 和 dbghelp.dll 添加到路径中(我使用的是 exe 目录)。

【讨论】:

以上是关于LoadLibrary 失败,错误代码为 14001的主要内容,如果未能解决你的问题,请参考以下文章

LoadLibrary 失败的解决

LoadLibrary() 失败并出现错误 8 (ERROR_NOT_ENOUGH_MEMORY)

LoadLibrary 失败并显示 lasterror 0x43 找不到网络名称

应用加载失败(loadlibrary失败 ,)应该怎么解决

HTTP 请求失败! HTTP/1.1 400 错误请求

C++ LoadLibrary 返回 Null