Visual C++程序问题 - 无法找到Debug CRT

lar*_*ryq 5 c++ msvcrt visual-c++

我有一个朋友正在接管我的Visual C++项目并且无法运行它.它是一个图形应用程序,它使用Qt GUI库.我提到这个的原因是因为下面的错误.

他可以使用Visual Studio 2010构建和链接程序,但是当他运行它时,此消息会出现在事件查看器中:

"D:\ Test\Qt\4.2.2\bin\QtGuid4.dll"的激活上下文生成失败.相关大会Microsoft.VC80.DebugCRT,ProcessorArchitecture用于= "86",公钥= "1fc8b3b9a1e18e3b",键入= "win32的" 版本= "8.0.50608.0" 无法被发现.请使用sxstrace.exe进行详细诊断.

当我们按照消息要求并运行sxstrace.exe时,我们看到的是:

开始激活上下文生成.输入参数:标志= 0 ProcessorArchitecture用于= WOW32 CultureFallBacks = EN-US; EN ManifestPath = d:\测试\的Qt\4.2.2\BIN\QtGuid4.dll AssemblyDirectory = d:\测试\的Qt\4.2.2\BIN \

---------------信息:解析清单文件D:\ Test\Qt\4.2.2\bin\QtGuid4.dll.信息:清单定义标识是(null).INFO:参考:Microsoft.VC80.DebugCRT,ProcessorArchitecture用于= "86" 类型= "Win32的",版本= "8.0.50608.0" INFO:解决参考Microsoft.VC80.DebugCRT,ProcessorArchitecture用于= "86" "的win32",版本=" 8.0.50608.0" .信息:解决ProcessorArchitecture WOW64的参考.信息:解决文化中立的参考.信息:应用绑定策略.信息:未找到发布者政策.信息:找不到绑定策略重定向.信息:开始装配探测.信息:没有在WinSxS中找到程序集.INFO:尝试在C到探测清单:\ WINDOWS \装配\ GAC_32\Microsoft.VC80.DebugCRT\8.0.50608.0__1fc8b3b9a1e18e3b\Microsoft.VC80.DebugCRT.DLL.信息:没有找到文化中立的清单.信息:结束装配探测.信息:解析ProcessorArchitecture x86的参考.信息:解决文化中立的参考.信息:应用绑定策略.信息:未找到发布者政策.信息:找不到绑定策略重定向.信息:开始装配探测.信息:没有在WinSxS中找到程序集.信息:尝试在C:\ Windows\assembly\GAC_32\Microsoft.VC80.DebugCRT\8.0.50608.0__1fc8b3b9a1e18e3b\Microsoft.VC80.DebugCRT.DLL中探测清单.信息:尝试在D:\ Test\Qt\4.2.2\bin\Microsoft.VC80.DebugCRT.DLL中探测清单.信息:尝试在D:\ Test\Qt\4.2.2\bin\Microsoft.VC80.DebugCRT.MANIFEST中探测清单.信息:尝试在D:\ Test\Qt\4.2.2\bin\Microsoft.VC80.DebugCRT\Microsoft.VC80.DebugCRT.DLL中探测清单.信息:尝试在D:\ Test\Qt\4.2.2\bin\Microsoft.VC80.DebugCRT\Microsoft.VC80.DebugCRT.MANIFEST中探测清单.信息:没有找到文化中立的清单.信息:结束装配探测.错误:无法解析引用Microsoft.VC80.DebugCRT,processorArchitecture ="x86",publicKeyToken ="1fc8b3b9a1e18e3b",type ="win32",version ="8.0.50608.0".

对不起该消息的长度,但我认为它可能会慢慢记忆.这是他没有Visual C++ 2005(我相信VC80来自哪里)C运行时库的情况吗?如果是这样,他可以下载VC++再分发包并安装它,那么一切顺利吗?或者这是一个完全不同的问题?

Tim*_*sch 7

如果您的朋友没有安装VS2005,他将没有调试运行时库.它们不属于可再发行的运行时和IIRC,Microsoft禁止您自己分发它们,因此您必须安装VS2005才能获得它们.

如果可能的话,我建议他重建受影响的图书馆; 我隐约记得网上有一些关于如何使用Visual Studio重建GPL QT的文章,我认为这些文章并未获得官方支持.

混合C++运行时需要非常小心,如果你没有完全正确的话,你可能陷入一个相当讨厌的陷阱.如果不能选择使用VS2010重建所有库,那么您的朋友将不得不掌握VS2005.如果MS仍然提供VS2005的Express Edition供下载,可能值得一试.