修复: SEH 异常被捕获错误的异常处理程序中 WEC 2013 启用异步异常处理,则

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

点击这里察看该文章的英文版: 3008664
本文介绍了在哪些 SEH 异常错误处理程序在 Windows 嵌入式紧凑型 2013年的问题。更新程序可以解决此问题。在安装此更新之前,必须安装此产品以前发出的所有更新。
症状
请考虑以下情形:
  • 您可以使用 Visual Studio 2013年插件应用程序生成器创建 c + + 应用程序面向 Windows 嵌入式紧凑型 2013年。
  • 启用异步异常处理使用"/ EHa"编译器开关。该开关允许两个 c + + 同步和结构化异常处理 (SEH) 异步异常处理是混合在同一代码中的方法。
  • 运行相关的代码以捕获 SEH 异常。
在这种情况下,SEH 异常始终捕获在第一次的异常处理程序中,即使它 c + + 同步异常的筛选。

预期的行为是省略号异常处理程序被捕获到 SEH 异常。

例如,您可以运行下面的代码示例:
class CMyEx{public:    CMyEx(int nParam) : m_nParam(nParam) { }    int m_nParam;}; void TestExceptions(){    try    {        int a = 42;        int b = 0;        // throw CMyEx(1);        // throw 97;        int c = a / b;    }    catch (const CMyEx &e)    {        wprintf(L"CMyEx exception caught (param=%d)!\n", e.m_nParam);    }    catch (...)    {        wprintf(L"Exception of unspecified type caught by ellipsis clause!\n");    }}
在此示例中,总是命中的第一个 catch 子句时 SEH 异常 (整数被零除) 而不是省略号处理程序按预期的方式。

解决方案

软件更新信息

现可从 Microsoft Windows 嵌入式紧凑型 2013年每月更新 (9 月 2015)。若要下载此 Windows 嵌入式紧凑型 2013年每月更新,请转到 Microsoft 的 OEM 联机MyOEM.

系统必备组件

此外已经安装了此产品的所有以前发布的更新时才支持此更新。

重新启动要求

应用此更新后,您必须执行干净对整个平台的构建。若要执行此操作,请使用以下方法之一:
  • 生成菜单中,选择清理解决方案,,然后选择生成解决方案
  • 生成菜单中,选择重新生成解决方案
您不必应用此软件更新后重新启动计算机。

更新替换信息

此更新不替代任何其他更新。

文件信息

此软件更新包的英文版具有的文件属性 (或更新的文件属性) 在下表中列出。日期和为这些文件的时间以协调世界时 (UTC) 列出。当您查看文件信息时,它将转换为本地时间。要了解 UTC 与本地时间之间的时差,使用在控制面板中的日期和时间项的时区选项卡。
此更新程序包中包含的文件
文件名称文件大小日期时间路径
Frame.cpp34,133到 2014 11 月 13 年23:06Private\Winceos\Coreos\Core\Corelibc\Crtw32\Eh
Fullcrt.lib30,027,3782015-年 9 月 0909:17Public\Common\Oak\Lib\X86\Checked
Fullcrt.lib30,228,2922015-年 9 月 0909:17Public\Common\Oak\Lib\X86\Retail
Fullcrt.lib28,759,8362015-年 9 月 0909:16Public\Common\Oak\Lib\X86\Debug
Fullcrt.lib29,278,3002015-年 9 月 0909:17Public\Common\Oak\Lib\Armv7\Checked
Fullcrt.lib29,566,7302015-年 9 月 0909:17Public\Common\Oak\Lib\Armv7\Retail
Fullcrt.lib33,139,5602015-年 9 月 0909:16Public\Common\Oak\Lib\Armv7\Debug
Msvcr110d.dll1,339,9522015--年 9 月 0805:26Public\Common\Sdk\Crt\Bin\X86
Msvcr110.dll754,2242015--年 9 月 0805:26Public\Common\Sdk\Crt\Bin\X86
Msvcr110d.map1,287,5792015--年 9 月 0805:26Public\Common\Sdk\Crt\Bin\X86
Msvcr110d.rel528,8342015--年 9 月 0805:26Public\Common\Sdk\Crt\Bin\X86
Msvcr110.map788,9862015--年 9 月 0805:26Public\Common\Sdk\Crt\Bin\X86
Msvcr110.rel242,1692015--年 9 月 0805:26Public\Common\Sdk\Crt\Bin\X86
Msvcr110d.dll1,145,3122015--年 9 月 0805:26Public\Common\Sdk\Crt\Bin\Arm
Msvcr110.dll539,6082015--年 9 月 0805:26Public\Common\Sdk\Crt\Bin\Arm
Msvcr110d.map2,714,2752015--年 9 月 0805:26Public\Common\Sdk\Crt\Bin\Arm
Msvcr110d.rel215,9242015--年 9 月 0805:26Public\Common\Sdk\Crt\Bin\Arm
Msvcr110.map1,258,3172015--年 9 月 0805:26Public\Common\Sdk\Crt\Bin\Arm
Msvcr110.rel122,1672015--年 9 月 0805:26Public\Common\Sdk\Crt\Bin\Arm
参考
了解有关 术语 Microsoft 用于描述软件更新。

警告:本文已自动翻译

属性

文章 ID:3008664 - 上次审阅时间:10/29/2015 19:20:00 - 修订版本: 1.0

Windows Embedded Compact 2013

  • kbautohotfix kbqfe kbhotfixserver kbfix kbmt KB3008664 KbMtzh
反馈