Denne artikkelen beskriver et problem i hvilke SEH unntak fanget ved en feil protokollbehandleren i Windows Embedded kompakt 2013. Det finnes en oppdatering for å fikse dette problemet. Før du installerer denne oppdateringen, må alle tidligere utgitte oppdateringer for dette produktet installeres.
Symptomer
Tenk deg følgende:
-
Du kan bruke Egenskapsverktøy for programmet som er plugin-modulen for Visual Studio-2013 til å opprette en C++-program mot Windows innebygde Compact 2013.
-
Du aktiverer den asynkrone unntaksbehandling ved hjelp av bryteren "/EHa"-kompilatoren. Denne bryteren tillater begge C++ synkrone og strukturert unntaksbehandling (SEH) asynkron unntaksbehandling metoder for å blandes i samme kode.
-
Du kan kjøre den relaterte koden for å fange SEH-unntak.
I dette scenariet SEH-unntak er alltid fanget opp i den aller første unntaksbehandleren selv om det er filtrert for en synkron C++-unntak.
Den forventede virkemåten er SEH-unntak som fanges opp av ellipse-unntaksbehandler. For eksempel kan du kjøre følgende eksempelkode: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 dette eksemplet traff du alltid første "catch"-setningsdel når det oppstår SEH-unntak (heltallsdivisjon med null) i stedet for ellipse behandlingsprogrammet som forventet.Oppløsning
Informasjon om programvareoppdatering
Windows innebygde Compact 2013 månedlige oppdateringen (September 2015) er nå tilgjengelig fra Microsoft. Hvis du vil laste ned denne oppdateringen for Windows Embedded kompakt 2013, kan du gå til Microsoft OEM Online eller MyOEM.
Forutsetninger
Denne oppdateringen støttes bare hvis alle tidligere utgitte oppdateringer for dette produktet er installert.
Krav om omstart
Når du har installert denne oppdateringen, må du utføre et rent Bygg av hele plattformen. Hvis du vil gjøre dette, bruker du én av følgende metoder:
-
Velg Ren løsningpå Lag -menyen, og velg deretter Bygge løsningen.
-
Velg Bygge løsningpå Lag -menyen.
Du trenger ikke starte datamaskinen på nytt etter at du har brukt denne programvareoppdateringen.
Informasjon om erstatning av oppdatering
Denne oppdateringen erstatter ikke andre oppdateringer.
Den engelskspråklige versjonen av denne programvareoppdateringspakken har filattributtene (eller senere filattributter) som er oppført i følgende tabell. Datoene og klokkeslettene for disse filene er oppført i Coordinated Universal Time (UTC). Når du viser filinformasjonen, konverteres den til lokal tid. Hvis du vil finne forskjellen mellom UTC og lokal tid, kan du bruke kategorien tidssone under dato og klokkeslett i Kontrollpanel.
Filene som er inkludert i denne oppdateringspakken
Filnavn |
Filstørrelse |
Dato |
Tid |
Bane |
---|---|---|---|---|
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 |
Referanser
Lær mer om terminologien som Microsoft bruker til å beskrive oppdateringer av programvare.