Den här artikeln beskrivs ett problem som SEH undantag fångas av en fel-hanteraren i Windows Embedded kompakt 2013. Det finns en uppdatering för att åtgärda problemet. Alla tidigare utgivna uppdateringar för den här produkten måste installeras innan du installerar denna uppdatering.
Symptom
Föreställ dig följande:
-
Du kan använda den Application Builder plugin-program för Visual Studio 2013 och skapa ett C++-program som ger Windows Embedded kompakt 2013.
-
Du aktiverar asynkron undantagshantering med hjälp av växeln "/EHa"-kompilatorn. Den här växeln kan båda C++ synkront och strukturerad undantagshantering (SEH) asynkrona undantagshantering metoder avsedda att blandas i samma kod.
-
Du kör relaterad kod att fånga SEH-undantag.
I det här fallet fångas alltid SEH undantag i den allra första Undantagshanteraren även om den är filtrerad för en synkron C++-undantag.
Normalt är SEH-undantag som fångas upp av punkter undantagshanterare. Till exempel kan du köra följande exempelkod: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"); } } I det här exemplet kan träffar du alltid den första catch-satsen när SEH-undantag (heltal division med noll) inträffar i stället för tre punkter hanterare som förväntat.Lösning
Information om programvara
Windows Embedded kompakt 2013 Monthly Update (September 2015) är nu tillgänglig från Microsoft. Om du vill hämta uppdateringen Windows Embedded kompakt 2013 månatliga, gå till Microsoft OEM Online eller MyOEM.
Förutsättningar
Den här uppdateringen stöds endast om alla tidigare utgivna uppdateringar för produkten har installerats.
Krav på omstart
När du har installerat den här uppdateringen måste du utföra en ren build-version av hela plattformen. Genom att använda någon av följande metoder:
-
Markera Ren lösningpå Build -menyn och välj Skapa lösningen.
-
Välj Återskapa lösningenpå Build -menyn.
Du behöver inte starta om datorn när du har installerat denna uppdatering.
Information om vad uppdateringen ersätter
Den här uppdateringen ersätter inte några andra uppdateringar.
Den engelska versionen av det här programuppdateringspaketet har de filattribut (eller senare filattribut) som visas i följande tabell. Datum och tider för dessa filer anges i UTC-tid (UTC). När du visar filinformationen konverteras den till lokal tid. Använd fliken tidszon i datum och tid på Kontrollpanelen om du vill se skillnaden mellan UTC-tid och lokal tid.
Filer som ingår i uppdateringspaketet
Filnamn |
Storlek |
Datum |
Tid |
Sökväg |
---|---|---|---|---|
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 |
Referenser
Lär dig mer om den terminologi som Microsoft använder för att beskriva programuppdateringar.