У цій статті у цій статті описано проблему, у яких SEH винятки потрапляє обробником неправильно в ОС Windows Embedded Compact 2013 року. Доступне оновлення, щоб вирішити цю проблему. Перш ніж інсталювати це оновлення, потрібно інсталювати всі попередньо випущені оновлення, для цього продукту.
Причини
Розглянемо таку ситуацію:
-
Побудовник застосунку компонент Plug-in для Visual Studio-2013 використовується, щоб створити C++ застосунок, який застосовує Windows Embedded Compact 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"); } } У цьому прикладі ви завжди натиснете перший пункт зловити при SEH виняток (ціле число, яке розділити на нуль) замість три крапки обробник належним чином.Вирішення
Відомості про для оновлення програмного забезпечення
Вбудований Compact 2013 щомісячні оновлення (вересень 2015) доступна від корпорації Майкрософт. Щоб завантажити Windows Embedded Compact 2013 року щомісячні оновлення, перейдіть до Постачальника обчислювальної техніки на сайті корпорації Майкрософт або MyOEM.
Попередні вимоги
Це оновлення, підтримується лише, якщо всі попередньо випущені оновлення, для цього продукту також інстальовано.
Необхідність перезавантаження
Після інсталяції цього оновлення, потрібно виконати чисте побудувати всієї платформи. Для цього скористайтеся одним із наведених нижче способів.
-
Створення меню виберіть Чистого рішенняі виберіть Побудувати рішення.
-
У меню створити , виберіть Відновити рішення.
Не потрібно перезавантажити комп'ютер, після інсталяції цього оновлення програмного забезпечення.
Відомості про заміну оновлення
Це оновлення, не замінює жодних інших оновлень.
Англійська версія цього пакета оновлень програмного забезпечення, має атрибути файлів (або новіші атрибути файлів) подані в нижченаведеній таблиці. Значення дати й часу для цих файлів наведено за всесвітнім координованим часом (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 |
Посилання
Відомості про термінологію , яку використовує корпорація Майкрософт для опису оновлень програмного забезпечення.