本文介绍了在哪些 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 在线 OEMMyOEM

系统必备组件

仅当此产品的所有以前发布的更新都已安装时才支持此更新。

重启要求

应用此更新后,您必须执行干净对整个平台的构建。若要执行此操作,请使用以下方法之一︰

  • 生成菜单中,选择清理解决方案,,然后选择生成解决方案

  • 生成菜单中,选择重新生成解决方案

您不必应用此软件更新后重新启动计算机。

更新替换信息

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

此软件更新包的英文版具有的文件属性 (或更新的文件属性) 在下表中列出。日期和为这些文件的时间以协调世界时 (UTC) 列出。当您查看文件信息时,它将转换为本地时间。要了解 UTC 与本地时间之间的时差,使用在控制面板中的日期和时间项的时区选项卡。

此更新程序包中包含的文件

文件名称

文件大小

日期

时间

路径

Frame.cpp

34,133

13-Nov-2014

23:06

Private\Winceos\Coreos\Core\Corelibc\Crtw32\Eh

Fullcrt.lib

30,027,378

09-Sep-2015

09:17

Public\Common\Oak\Lib\X86\Checked

Fullcrt.lib

30,228,292

09-Sep-2015

09:17

Public\Common\Oak\Lib\X86\Retail

Fullcrt.lib

28,759,836

09-Sep-2015

09:16

Public\Common\Oak\Lib\X86\Debug

Fullcrt.lib

29,278,300

09-Sep-2015

09:17

Public\Common\Oak\Lib\Armv7\Checked

Fullcrt.lib

29,566,730

09-Sep-2015

09:17

Public\Common\Oak\Lib\Armv7\Retail

Fullcrt.lib

33,139,560

09-Sep-2015

09:16

Public\Common\Oak\Lib\Armv7\Debug

Msvcr110d.dll

1,339,952

08-Sep-2015

05:26

Public\Common\Sdk\Crt\Bin\X86

Msvcr110.dll

754,224

08-Sep-2015

05:26

Public\Common\Sdk\Crt\Bin\X86

Msvcr110d.map

1,287,579

08-Sep-2015

05:26

Public\Common\Sdk\Crt\Bin\X86

Msvcr110d.rel

528,834

08-Sep-2015

05:26

Public\Common\Sdk\Crt\Bin\X86

Msvcr110.map

788,986

08-Sep-2015

05:26

Public\Common\Sdk\Crt\Bin\X86

Msvcr110.rel

242,169

08-Sep-2015

05:26

Public\Common\Sdk\Crt\Bin\X86

Msvcr110d.dll

1,145,312

08-Sep-2015

05:26

Public\Common\Sdk\Crt\Bin\Arm

Msvcr110.dll

539,608

08-Sep-2015

05:26

Public\Common\Sdk\Crt\Bin\Arm

Msvcr110d.map

2,714,275

08-Sep-2015

05:26

Public\Common\Sdk\Crt\Bin\Arm

Msvcr110d.rel

215,924

08-Sep-2015

05:26

Public\Common\Sdk\Crt\Bin\Arm

Msvcr110.map

1,258,317

08-Sep-2015

05:26

Public\Common\Sdk\Crt\Bin\Arm

Msvcr110.rel

122,167

08-Sep-2015

05:26

Public\Common\Sdk\Crt\Bin\Arm

参考资料

了解 Microsoft 用于描述软件更新的术语

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。