【问题标题】:Why do i get MFC runtime error when I am not using MFC?为什么不使用 MFC 时会出现 MFC 运行时错误?
【发布时间】:2015-12-03 03:34:11
【问题描述】:

我正在尝试运行客户端虚拟驱动程序 dll(本质上这不是驱动程序,而是用户模式代码)。此 dll 由 Citrix 客户端加载,该客户端具有 CRT、MFC、MFCLOC 的清单,所有这些都指向 Visual Studio 2005。

我已将我的 dll 链接到与 Citrix 客户端一起安装的清单文件中找到的 C++ 运行时的确切版本。

现在,我的 DLL 是纯 win32 代码,没有 MFC 调用,但我收到“为 MFC80.dll 生成激活上下文时出错”


消息

“C:\Program Files (x86)\Citrix\ICA Client\MFC80.DLL”的激活上下文生成失败。清单或策略文件“C:\Program Files (x86)\Citrix\ICA Client\Microsoft .VC80.MFCLOC.MANIFEST”在第 5 行。在清单中找到的组件标识与请求的组件的标识不匹配。参考是 Microsoft.VC80.MFCLOC,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50608.0"。定义为 Microsoft.VC80.MFCLOC,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.762"。详细诊断请使用sxstrace.exe。

【问题讨论】:

  • 那么,你有没有“使用sxstrace.exe进行详细诊断”?
  • 在 SxSTrace 中出现了同样的错误,但信息略多
  • 信息:清单定义标识是 Microsoft.VC80.MFCLOC,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.762"。错误:在清单中找到的组件标识与请求的组件标识不匹配。参考是 Microsoft.VC80.MFCLOC,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50608.0"。定义为 Microsoft.VC80.MFCLOC,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.762"。错误:激活上下文生成失败。

标签: c++ windows runtime-error visual-studio-2005 citrix


【解决方案1】:

1) 安装 SxSTrace 中列出的运行时,解决了问题。

【讨论】:

  • 根本原因只是安装的版本比所需的版本旧。 VC80 对运行时进行了许多更新。
猜你喜欢
  • 2014-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多