Перейти до основного
Підтримка
Вхід
Вхід за допомогою облікового запису Microsoft
Увійдіть або створіть обліковий запис.
Вітаємо,
Виберіть інший обліковий запис.
У вас є кілька облікових записів
Виберіть обліковий запис, за допомогою якого потрібно ввійти.

У цій статті у цій статті описано проблему, у яких 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


Посилання

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

Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.

Спільноти допомагають ставити запитання й відповідати на них, надавати відгуки та дізнаватися думки висококваліфікованих експертів.

Чи ця інформація була корисною?

Наскільки ви задоволені якістю мови?
Що вплинуло на ваші враження?
Натиснувши кнопку "Надіслати", ви надасте свій відгук для покращення продуктів і служб Microsoft. Ваш ІТ-адміністратор зможе збирати ці дані. Декларація про конфіденційність.

Дякуємо за відгук!

×