我有一个朋友正在接管我的Visual C ++项目并且无法运行它。它是一个图形应用程序,它使用Qt GUI库。我提到这个的原因是因为下面的错误。
他可以使用Visual Studio 2010构建和链接程序,但是当他运行它时,此消息会出现在事件查看器中:
激活上下文生成失败 对于 “d:\测试\的Qt \ 4.2.2 \ BIN \ QtGuid4.dll”。 附属大会 Microsoft.VC80.DebugCRT,ProcessorArchitecture用于= “86”,公钥= “1fc8b3b9a1e18e3b” type =“win32”,version =“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 \
--------------- INFO:解析清单文件D:\ Test \ Qt \ 4.2.2 \ bin \ QtGuid4.dll。 信息:清单定义标识是 (空值)。信息:参考: Microsoft.VC80.DebugCRT,ProcessorArchitecture用于= “86” 类型= “Win32的”,版本= “8.0.50608.0” 信息:解决参考 Microsoft.VC80.DebugCRT,ProcessorArchitecture用于= “86”, “Win32的” 版本= “8.0.50608.0”。 信息:解决参考 ProcessorArchitecture WOW64。信息: 解决文化的参考 中性。信息:应用绑定 政策。 信息:未找到发布者政策。 信息:找不到绑定策略重定向。信息:开始组装 探测。 信息:没有在WinSxS中找到程序集。 信息:尝试在C:\ Windows \ assembly \ 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 ++再分发包并安装它,那么一切顺利吗?或者这是一个完全不同的问题?
答案 0 :(得分:7)
如果您的朋友没有安装VS2005,他将不会拥有调试运行时库。它们不属于可再发行的运行时和IIRC,Microsoft禁止您自己分发它们,因此您必须安装VS2005才能获得它们。
我建议他尽可能重建受影响的图书馆;我隐约回想起网上有一些关于如何使用Visual Studio重建GPL QT的文章,我认为这些文章并未获得官方支持。
混合C ++运行时需要非常小心,如果你没有完全正确的话,你可能陷入一个相当讨厌的陷阱。如果不能选择使用VS2010重建所有库,那么您的朋友将不得不掌握VS2005。如果MS仍然提供VS2005的Express Edition供下载,可能值得一试。
答案 1 :(得分:1)
你可以在下面做:LOL
如果您在构建X64目标的Windows 7 X64模式下运行应用程序,则必须安装以下X64 SP1可再发行组件包
http://www.microsoft.com/download/en/details.aspx?id=2092
注意:清单文件应更改为processorArchitecture = X64并输入=“win64”
如果使用在WOW64层之上运行的X86(32位模式)构建应用程序,则必须安装X86 SP1可再发行组件包
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=5582