W tym artykule opisano problem w którym zastępowania strukturalnej obsługi wyjątków są objęte nieodpowiednim program obsługi w systemu Windows Embedded Compact 2013. Aktualizacja jest dostępna do rozwiązania tego problemu. Przed zainstalowaniem tej aktualizacji należy wszystkie uprzednio wydane aktualizacje dla tego produktu musi być zainstalowany.
Objawy
Rozważ następujący scenariusz:
-
Dodatek dla programu Visual Studio 2013 konstruktora aplikacji umożliwia tworzenie aplikacji C++, który jest przeznaczony dla systemu Windows Embedded Compact 2013.
-
Włącz asynchroniczne wyjątki przy użyciu przełącznika "/eha/eha" kompilatora. Ten przełącznik umożliwia zarówno synchroniczne strukturalnych i obsługi wyjątków C++ obsługi metod, aby być mieszane w tym samym kodem wyjątków asynchronicznego (strukturalnej).
-
Uruchom pokrewne kod, aby przechwytywać zastępowania strukturalnej obsługi wyjątków.
W tym scenariuszu zastępowania strukturalnej obsługi wyjątków są zawsze złowionych w pierwszy obsługi wyjątków, nawet jeśli jest filtrowana dla wyjątku synchroniczne C++.
Oczekiwane zachowanie jest wyjątki strukturalnej obsługi wyjątków są objęci wielokropka obsługi wyjątków. Na przykład można uruchomić następujący kod: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"); } } W tym przykładzie należy zawsze trafić pierwszej klauzuli catch, po wystąpieniu wyjątku strukturalnej obsługi wyjątków (dzielenie liczby całkowitej przez zero) zamiast obsługi wielokropka zgodnie z oczekiwaniami.Rozwiązanie
Informacje dotyczące aktualizacji oprogramowania
Systemu Windows Embedded Compact 2013 comiesięczna aktualizacja (września 2015) jest teraz udostępniana przez firmę Microsoft. Aby pobrać ten comiesięczna aktualizacja systemu Windows Embedded Compact 2013, przejdź do Witryny Microsoft OEM Online lub MyOEM.
Wymagania wstępne
Ta aktualizacja jest obsługiwana tylko wtedy, gdy wszystkie uprzednio wydane aktualizacje dla tego produktu zostały również zainstalowane.
Wymagania dotyczące ponownego uruchomienia
Po zastosowaniu tej aktualizacji należy wykonać czystą kompilację całej platformy. Aby to zrobić, użyj jednej z następujących metod:
-
W menu TworzenieCzystegoroztworu, a następnie wybierz Budowania rozwiązania.
-
W menu Tworzenie wybierz Odbudować rozwiązanie.
Nie musisz ponownie uruchomić komputer po zastosowaniu tej aktualizacji oprogramowania.
Informacje dotyczące zastępowania aktualizacji
Ta aktualizacja nie zastępuje żadnych innych aktualizacji.
Wersja anglojęzyczna tego pakietu aktualizacji oprogramowania ma atrybuty plików (lub nowsze) wymienione w poniższej tabeli. Daty i godziny odpowiadające tym plikom zostały podane w formacie uniwersalnego czasu koordynowanego (UTC, Coordinated Universal Time). Po wyświetleniu informacji o pliku są konwertowane na czas lokalny. Aby zobaczyć różnicę między czasem UTC i czasem lokalnym, należy użyć z karty Strefa czasowa w aplecie Data i godzina w Panelu sterowania.
Pliki, które są uwzględnione w tym pakiecie aktualizacji
Nazwa pliku |
Rozmiar pliku |
Data |
Godzina |
Ścieżka |
---|---|---|---|---|
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 |
Powiązane artykuły
Więcej informacji na temat terminologii stosowanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.