这里是我的情况:如何解决这个MS运行时的DLL加载运行时错误(R6034)
我有一个C项目,许多图书馆链接(我没有写这个应用程序),并且它也随MSVCR71.dll和MSVCP71.dll。即使没有这些DLL,该程序在我的系统上运行良好,该系统安装了MS VS2005(实际上使用MSVCR80.dll和MSVCP80.dll)。
我已将此应用程序与其他库链接,并在我的系统上编译。现在,在与这些库链接后,应用程序无法启动,因为它无法加载MSVCR80.dll和MSVCP80.dll ......我非常奇怪。
Loader向我展示了错误R6034,应该使用清单文件来解决构建应用程序的问题。
这个应用程序有什么问题?
确认问题是由引入的库引入的。我可以在没有清单或静态的情况下编译这些库吗?
仍然好奇,为什么应用程序,而联新库没有找到MS运行时的DLL ...
这正是我所做的。当我链接新的库(在同一系统上使用VS2005编译)时,该应用程序无法加载MSVCR80.dll。显示错误R6034,因为我已将这些DLL复制到应用程序的工作目录中。 任何想法? – Luca
好吧,现在我明白了。 MSDN显示关于此错误的非常具有描述性的文本: “应用程序尝试加载C运行时库而不使用清单,这是一种不受支持的加载Visual C++ DLL的方式,您需要修改应用程序以使用有关更多信息,请参阅产品文档中的“Visual C++库作为共享并行程序集”主题。“ 所以,只需在项目设置中启用默认清单创建,一切都会正常工作。你不需要特殊的清单 - 只是一些清单。 – Oleg
其实应用程序使用清单(使用/ 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 ...) – Luca