Dieser Artikel beschreibt ein Problem in der SEH Ausnahmen von einem falschen Handler in Windows Embedded Compact 2013 abgefangen werden. Ein Update ist verfügbar, um dieses Problem zu beheben. Bevor Sie dieses Update installieren, müssen alle zuvor veröffentlichten Updates für dieses Produkt installiert.
Problembeschreibung
Betrachten Sie das folgende Szenario:
-
Mithilfe der Application Builder plug-in für Visual Studio 2013 eine C++-Anwendung Windows Embedded Compact 2013 erstellen.
-
Sie aktivieren die asynchrone Ausnahmebehandlung mit den Compilerschalter "/eha/EHa". Diese Option ermöglicht sowohl C++ synchrone und strukturierte Ausnahmebehandlung asynchronen Ausnahmebehandlung (SEH) Methoden können den gleichen Code gemischt werden.
-
Sie den zugehörigen Code SEH-Ausnahmen abfangen.
In diesem Szenario werden SEH-Ausnahmen immer den ersten Ausnahmehandler abgefangen, selbst wenn für synchrone C++-Ausnahmen gefiltert wird.
SEH-Ausnahmen werden Auslassungszeichen Ausnahmehandler wird erwartet. Führen Sie z. B. folgenden Code: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"); } } In diesem Beispiel erreichen Sie immer die erste Catch-Klausel tritt SEH-Ausnahmen (Integer Division durch null) statt der Ellipse Handler wie erwartet.Problemlösung
Informationen zu Softwareupdates
Windows Embedded Compact 2013 monatliche Update (September 2015) ist jetzt von Microsoft erhältlich. Gehen Sie zum Herunterladen dieses monatlichen Updates für Windows Embedded Compact 2013 Microsoft OEM Online oder MyOEM.
Voraussetzungen
Dieses Update wird nur unterstützt, wenn alle zuvor veröffentlichten Updates für dieses Produkt ebenfalls installiert wurden.
Neustartanforderung
Nach der Installation dieses Updates müssen Sie die gesamte Plattform neu erstellen. Verwenden Sie hierzu eine der folgenden Methoden:
-
Im Menü Erstellen auf Wählen Sie Projektmappe bereinigen ausund wählen Sie die Projektmappe.
-
Im Menü Erstellen auf Projektmappe neu erstellen.
Sie müssen den Computer neu starten, nachdem Sie dieses Update anwenden.
Ersetzte Updates
Dieses Update ersetzt keine anderen Updates nicht.
Die englische Version dieses Softwareupdatepakets Dateiattribute (oder höher) ist in der folgenden Tabelle aufgeführt. Die Datums- und Uhrzeitangaben für diese Dateien sind in Coordinated Universal Time (UTC) aufgelistet. Wenn Sie die Dateiinformationen anzeigen, wird es in die lokale Zeit konvertiert. Um die Differenz zwischen UTC und der Ortszeit zu suchen, verwenden Sie die Registerkarte Zeitzone in dem Element im Bedienfeld .
Dieses Update-Paket enthaltenen Dateien
Dateiname |
Dateigröße |
Datum |
Zeit |
Pfad |
---|---|---|---|---|
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 |
Referenzen
Informationen Sie zur Terminologie , die Microsoft-Softwareupdates verwendet.