【问题标题】:LoadLibrary fails with error code 14001LoadLibrary 失败,错误代码为 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 等。尝试链接器/高级 - 无入口点

标签: c++ visual-c++


【解决方案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 目录)。

      【讨论】:

        猜你喜欢
        • 2020-07-12
        • 2016-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-06
        相关资源
        最近更新 更多