Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

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.

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×