修复: 发生访问冲突时如果使用运行 Visual C++ 2010年基于的应用程序的基于 x64 平台"/ O2"编译器选项生成项目

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

点击这里察看该文章的英文版: 2280741
症状
请考虑以下情形:
  • 有一个 Visual C++ 2010年项目。该项目的源代码有 astructure 或 classthat 超过 64 个字节。
  • 生成 projectfor 基于 x64 平台上,并使用/ O2 编译器选项。
  • 运行该应用程序。
在这种情况下,发生访问冲突,并且应用程序崩溃。
原因
由于 Visual Studio 2010 的基于 x64 编译器通过 adjustingthe 分配数据从 64 字节到 16 字节对齐方式来优化代码,将出现此问题。因此,当对象大小超过64byte时,会出现该内存问题。
解决方案

修补程序信息

Microsoft 提供了一个受支持的修补程序。然而,此修补程序仅用于解决本文中描述的问题。仅对出现这一特定问题的系统应用此修补程序。此修补程序可能会接受进一步的测试。因此,如果这个问题没有对您造成严重的影响,我们建议您等待包含此修复程序的下一个软件更新。

若要从 MSDN 代码库中下载此修补程序,请访问下面的 Microsoft 网站:

注意:MSDN 代码库显示获取此修复程序的语言。如果看不到列出的语言,这是因为代码库的资源页不可用这种语言。

注意:如果出现其他问题或需要任何故障诊断时,您可能需要创建单独的服务请求。对于此特定的修补程序不需要照常收取支持费用到其他支持问题和事项。Microsoft 客户服务和支持电话号码,或创建单独的服务请求的完整列表,请访问下面的 Microsoft 网站:
您还可以通过访问下面的 Microsoft 网站下载此修补程序:

系统必备组件

若要应用此修补程序,您必须安装的 Visual Studio 2010。

重新启动要求

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

修补程序替换信息

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

文件信息

此修复程序的英文版具有的文件属性 (或更新的文件属性)在下表中列出。日期和为这些文件的时间以协调世界时 (UTC) 列出。当您查看文件信息时,它将转换为本地时间。要了解 UTC 与本地时间之间的时差,使用在控制面板中的日期和时间项的时区选项卡。
文件名称文件版本文件大小日期时间平台
C2.dll16.0.30319.3452,510,1442010 年 8 月月 01 日23:42x86
C2.dll16.0.30319.3452,588,4802010 年 8 月月 01 日23:42x86
C2.dll16.0.30319.3452,630,9762010 年 8 月月 01 日23:42x86
C2.dll16.0.30319.3452,977,0882010 年 8 月月 01 日23:42x64
C2.dll16.0.30319.3457,351,6162010 年 8 月月 01 日23:42IA-64
替代方法
若要变通解决此问题,请不要在生成项目时使用/O2编译器选项。
状态
Microsoft 已经确认这是"适用于"一节中列出的 Microsoft 产品中的问题。

属性

文章 ID:2280741 - 上次审阅时间:01/10/2016 05:09:00 - 修订版本: 2.0

Microsoft Visual Studio 2010 Ultimate, Microsoft Visual Studio 2010 Premium with MSDN, Microsoft Visual Studio 2010 Professional

  • kbqfe kbHotfixServer kbsurveynew kbexpertiseadvanced kbmt KB2280741 KbMtzh
反馈