修复: 当基于.NET Framework 2.0 的 64 位应用程序中包含的某些 COM Api 时,不正确的方法被调用

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 947148
症状
请考虑以下情形:
  • 通过使用 Microsoft.NET Framework 2.0 创建 64 位应用程序调用某些 COM Api。
  • COM Api 有同一方法的多个实例。
  • 该方法使用 lcid 属性。
  • 您可以使用下列选项之一来调用 COM Api:
    • 托管的 COM 互操作
    • 平台调用 (P/Invoke) 代码
在这种情况下,调用的正确方法。

例如,请考虑以下情形:
  • 您必须使用 64 位版本的公共语言运行时 (CLR) 的 64 位应用程序。
  • 应用程序有两个托管的 P/Invoke 函数具有相同的签名。一个本机方法签名点。
  • 两个 P/Invoke 函数依赖 LCIDConversionAttribute 本地化支持类。
  • 运行该应用程序。
在这种情况下,您可能会收到类似于以下内容的错误消息:
System.Runtime.InteropServices.COMException (0x800706F4): 一个 null 引用指针传递到存根。(从 HRESULT 异常: 0x800706F4)
解决方案

修补程序信息

受支持的修补程序现已从 Microsoft 推出。但是,它被用于纠正本文中描述的问题。它仅应用于正经历此特定问题的系统。此修补程序可能会接受进一步的测试。因此,如果这个问题没有对您造成严重的影响,我们建议您等待下一个 Windows Vista 或.NET Framework 2.0 service pack 包含此修复程序。

要立即解决此问题,请联系 Microsoft 客户支持服务,以获取此修复程序。Microsoft 客户支持服务的电话号码以及有关支持费用的信息的完整列表,请访问下面的 Microsoft 网站:注意: 在特殊情况下,如果 Microsoft 支持专业人员确定某个特定的更新能够解决您的问题,可能会取消可免收支持电话的费用。通常的支持费用将应用于其他支持问题和事项,不需要进行专门更新。

系统必备组件

您必须具有要应用此修补程序的安装下列选项之一:
  • Windows Vista Service 1 Pack
  • .NET Framework 2.0 Service Pack 1

重新启动要求

应用此修补程序后,不需要重新启动计算机。

修补程序替换信息

此修补程序不替换任何其他修补程序。

文件信息

此修复程序的英文版具有的文件属性 (或更新的文件属性)在下表中列出。日期和为这些文件的时间以协调世界时 (UTC) 列出。当您查看文件信息时,它将转换为本地时间。要了解 UTC 与本地时间之间的时差,请使用控制面板中的日期和时间项中的时区选项卡。
.NET Framework 2.0 中,32 位版本,未运行 Windows Vista 的计算机上
文件名称文件版本文件大小日期时间平台
Cordacwks.dll2.0.50727.1812822,2802008 年 1 月 2910:48x86
Mscorlib.dll2.0.50727.18124,345,8562008 年 1 月 2910:48x86
Mscorwks.dll2.0.50727.18125,852,6722008 年 1 月 2910:48x86
.NET Framework 2.0 版上未运行 Windows Vista 的计算机基于 Itanium 的版本
文件名称文件版本文件大小日期时间平台
Cordacwks.dll2.0.50727.1812822,2802008 年 1 月 2910:48x86
Cordacwks.dll2.0.50727.18122,769,4162008 年 1 月 2902:26IA-64
Mscorlib.dll2.0.50727.18124,345,8562008 年 1 月 2910:48x86
Mscorlib.dll2.0.50727.18123,997,6962008 年 1 月 2902:26IA-64
Mscorwks.dll2.0.50727.18125,852,6722008 年 1 月 2910:48x86
Mscorwks.dll2.0.50727.181221,686,2722008 年 1 月 2902:26IA-64
.NET Framework 2.0 中,64 位版本,未运行 Windows Vista 的计算机上
文件名称文件版本文件大小日期时间平台
Cordacwks.dll2.0.50727.18101,652,7442008 年 1 月 1423:36x64
Cordacwks.dll2.0.50727.1812822,2802008 年 1 月 2910:48x86
Mscorlib.dll2.0.50727.18104,345,8562008 年 1 月 1423:36x64
Mscorlib.dll2.0.50727.18124,345,8562008 年 1 月 2910:48x86
Mscorwks.dll2.0.50727.181010,547,2002008 年 1 月 1423:36x64
Mscorwks.dll2.0.50727.18125,852,6722008 年 1 月 2910:48x86
.NET Framework 2.0 版上运行 32 位版本的 Windows Vista with Service Pack 1 的计算机
文件名称文件版本文件大小日期时间平台
Mscorlib.dll2.0.50727.18264,345,8562008 年 5 月 06 日22:18x86
Mscordacwks.dll2.0.50727.1826822,2802008 年 5 月 06 日22:18x86
Mscorwks.dll2.0.50727.18265,852,6722008 年 5 月 01 日23:34x86
.NET Framework 2.0 版在运行 64 位版本的 Windows Vista with Service Pack 1 的计算机上
文件名称文件版本文件大小日期时间平台
Mscorlib.dll2.0.50727.18264,345,8562008 年 5 月 05 日22:13x64
Mscordacwks.dll2.0.50727.18261,652,7442008 年 5 月 05 日22:13x64
Mscorwks.dll2.0.50727.182610,543,1042008 年 5 月 01 日23:36x64
Mscorlib.dll2.0.50727.18264,345,8562008 年 5 月 06 日22:18x86
Mscordacwks.dll2.0.50727.1826822,2802008 年 5 月 06 日22:18x86
Mscorwks.dll2.0.50727.18265,852,6722008 年 5 月 01 日23:34x86
状态
Microsoft 已经确认这是"适用于"一节中列出的 Microsoft 产品中的问题。
更多信息
有关平台调用的更多信息,请访问下面的 Microsoft 开发人员网络 (MSDN) Web 站点:有关lcid属性的详细信息,请访问下面的 MSDN 网站: 有关软件更新术语的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
824684 用来描述 Microsoft 软件更新的标准术语的说明

警告:本文已自动翻译

属性

文章 ID:947148 - 上次审阅时间:09/27/2015 05:36:00 - 修订版本: 2.0

Microsoft .NET Framework 2.0

  • kbexpertiseadvanced kbfix kbqfe kbmt KB947148 KbMtzh
反馈