Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

В данной статье описывается проблема, в какой SEH исключения перехватываются обработчиком неправильно в Windows Embedded Compact 2013. Доступно обновление для устранения этой проблемы. Перед установкой этого обновления необходимо установить все ранее выпущенные обновления для данного продукта.

Симптомы

Рассмотрим следующий сценарий:

  • Создание приложения C++, ориентированном Windows Embedded Compact 2013 использовать подключаемый модуль для Visual Studio 2013 Application Builder.

  • Включение обработки с помощью переключателя компилятора «/eha/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 (целочисленное деление на ноль) вместо обработчика с многоточием должным образом.

Решение

Сведения об обновлении программного обеспечения

Теперь Windows Embedded Compact 2013 ежемесячное обновление (сентябрь 2015) от корпорации Майкрософт. Чтобы загрузить это обновление Windows Embedded Compact 2013 ежемесячно, перейдите к Microsoft OEM Online или MyOEM.

Предварительные условия

Это обновление поддерживается только в том случае, если также были установлены все ранее выпущенные обновления для данного продукта.

Необходимость перезагрузки

После установки этого обновления необходимо выполнить чистую сборку всей платформы. Для этого воспользуйтесь одним из следующих способов:

  • В меню Построение выберите Очистить решениеи выберите Построить решение.

  • В меню Построение выберите команду Перестроить решение.

Нет необходимости перезагрузить компьютер после применения этого обновления программного обеспечения.

Сведения о замене обновлений

Это обновление не заменяет других обновлений.

Английская версия данного пакета обновления содержит атрибуты файла (или более поздние атрибуты файлов), приведенные в следующей таблице. Дата и время для этих файлов указаны в формате общего скоординированного времени (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


Ссылки

Дополнительные сведения о терминологии , которую корпорация Майкрософт использует для описания обновлений программного обеспечения.

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×