【问题标题】:How to solve this MS runtime DLLs loader runtime error (R6034)如何解决此 MS 运行时 DLL 加载程序运行时错误 (R6034)
【发布时间】:2010-02-28 11:32:31
【问题描述】:

这是我的情况:

我有一个与许多库链接的 C 项目(我还没有编写此应用程序),它还附带 MSVCR71.dll 和 MSVCP71.dll。即使没有这些 DLL,该程序在我的系统上运行良好,该系统安装了 MS VS2005(确实使用 MSVCR80.dll 和 MSVCP80.dll)。

我已将此应用程序与在我的系统上编译的其他库链接。现在,在与这些库链接后,应用程序无法启动,因为它无法加载 MSVCR80.dll 和 MSVCP80.dll……我说这很奇怪。

Loader 向我显示错误 R6034,应该使用清单文件构建应用程序来解决该错误。

这个应用程序有什么问题?


确认问题是由引入的库引入的。我可以在没有清单或静态的情况下编译这些库吗?

仍然很好奇为什么没有链接新库的应用程序找不到 MS 运行时 DLL...

【问题讨论】:

    标签: c windows dll visual-studio-2005


    【解决方案1】:

    MSVCP71.dll 是 Visual Studio 2002 使用的 dll。MSVCR80.dll 适用于 Visual Studio 2005。 所以,当你用 VS2005 重新编译这个应用程序时,你会得到新的 dll 依赖项。 您无法使用清单解决它 - 您应该在 Visual Studio 2002 中重新编译它,或者只是将这些新的 dll 放入您的应用所在的同一文件夹中。

    编辑: 是的,您可以将您的应用程序与静态 CRT 库链接,以避免对这些 dll 的外部依赖。但是,如果您链​​接的 dll 或库之一使用动态 CRT,则可能无法使用动态 CRT - 那么您也应该使用静态 CRT 重新编译它们。

    【讨论】:

    • 这正是我所做的。当我链接新库(在同一系统上使用 VS2005 编译)时,应用程序无法加载 MSVCR80.dll。显示错误 R6034 是因为我已将这些 DLL 复制到应用程序的工作目录中。有什么想法吗?
    • 好的,现在我明白了。 MSDN 显示了有关此错误的非常描述性文本:“应用程序已尝试在不使用清单的情况下加载 C 运行时库。这是加载 Visual C++ DLL 的不受支持的方式。您需要修改应用程序以使用清单构建。有关详细信息,请参阅产品文档中的“Visual C++ Libraries as Shared Side-by-Side Assemblies”主题。因此,只需在项目设置中启用默认清单创建,一切都会正常工作。您不需要特殊清单 - 只需一些清单。
    • 实际上应用程序使用清单(通过使用 /MANIFEST /MANIFESTFILE:...\asdasd.exe.intermediate.manifest")。或者我错了吗?其他 DLL 呢(它与 pthreadVC2 链接。 lib glut32.lib glew32.lib Cg.lib CgGL.lib Half.lib Iex.lib IlmImf.lib IlmThread.lib Imath.lib zdll.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32 .lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib...)
    • 奇怪。编译项目时是否有关于清单的警告?您也可以打开已编译的 exe 并检查您的清单是否集成在其中。有可用的工具(如果你把 exe 放在那里,AFAIR Visual Studio 就可以做到)。您可以连接调试器并检查何时显示此错误 - 是在您的主进程初始化中还是在其他 dll 的一个初始化时。
    • 没有警告,我确认清单已嵌入到可执行文件中。在 Release 中编译运行正确(可能我放置了这些 dll 的非调试版本)。仍然想知道为什么不再加载系统上的 DLL,但我必须将 MS*.dll 文件复制到工作目录中。 +1 支持! :)
    猜你喜欢
    • 2020-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-20
    • 2021-10-20
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多