FIX: SEH uitzonderingen worden gevangen door verkeerde uitzonderings-handler als asynchrone exception handling in 2013 WEC is ingeschakeld

BELANGRIJK: Dit artikel is vertaald door middel van automatische vertalingssoftware van Microsoft en is mogelijk nabewerkt door de Microsoft Community via CTF-technologie (Community Translation Framework) of door een menselijke vertaler. Microsoft biedt zowel automatisch vertaalde, door mensen vertaalde en door de community nabewerkte artikelen aan, zodat er in meerdere talen toegang is tot alle artikelen in onze Knowledge Base. Een vertaald of bewerkt artikel kan fouten bevatten in vocabulaire, syntaxis of grammatica.. Microsoft is niet verantwoordelijk voor eventuele onjuistheden, fouten of schade ten gevolge van een foute vertaling van de inhoud van een bericht of het gebruik van deze vertaalde berichten door onze klanten.

De Engelstalige versie van dit artikel is de volgende: 3008664
Dit artikel beschrijft een probleem in welke SEH uitzonderingen worden gevangen door een verkeerde handler in Windows ingesloten Compact 2013. Er is een update beschikbaar om dit probleem te verhelpen. Voordat u deze update installeert, moeten alle eerder uitgebrachte updates voor dit product zijn geïnstalleerd.
Symptomen
Overweeg het volgende scenario:
  • Met de invoegtoepassing voor Visual Studio-2013 Application Builder kunt u een C++-toepassing maken die doelen Windows ingesloten Compact 2013.
  • U inschakelt de asynchrone uitzondering verwerken met behulp van de "/ EHa"compiler-schakeloptie. Met deze schakeloptie kunt beide C++ synchrone en gestructureerde afhandeling van uitzonderingen (SEH) asynchrone uitzondering verwerken van methoden in dezelfde code worden gemengd.
  • De gerelateerde code catch SEH uitzonderingen worden uitgevoerd.
In dit scenario is SEH uitzonderingen altijd gevangen in de allereerste uitzonderingshandler zelfs als het gefilterd voor een synchrone C++-uitzondering.

Het verwachte gedrag is SEH uitzonderingen wordt gevangen door de uitzonderingshandler weglatingsteken.

Bijvoorbeeld, kunt u de volgende code uitvoeren:
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 dit voorbeeld wordt druk u altijd op de eerste catch-component wanneer de SEH-uitzondering (geheel getal delen door nul) in plaats van de handler weglatingsteken plaatsvindt zoals verwacht.

Oplossing

Informatie over de software-update

Windows ingesloten Compact 2013 maandelijkse Update (September 2015) is nu beschikbaar bij Microsoft. Deze update te downloaden Windows ingesloten Compact 2013 maandelijkse, gaat u naar On line Microsoft OEM of MyOEM.

Vereisten

Met deze update wordt alleen ondersteund als ook alle eerder uitgebrachte updates voor dit product zijn geïnstalleerd.

Opnieuw opstarten

Nadat u deze update hebt toegepast, moet u het hele platform leegmaken en opnieuw opbouwen uitvoeren. Gebruik hiervoor een van de volgende methoden:
  • Open het menu BuildSchone oplossingselecteren en selecteer Build Solution.
  • Selecteer in het menu BuildOplossing bouwen.
U hoeft niet de computer opnieuw opstarten nadat u deze software-update hebt toegepast.

Informatie over het vervangen van updates

Deze update vervangen geen andere updates.

Bestandsinformatie

De Engelse versie van dit updatepakket heeft de bestandskenmerken (of recentere bestandskenmerken) die in de volgende tabel worden weergegeven. De datums en tijden voor deze bestanden worden weergegeven in Coordinated Universal Time (UTC). Wanneer u de bestandsinformatie weergeeft, wordt deze naar lokale tijd geconverteerd. Gebruik het tabbladtijdzone in het onderdeel datum en tijd in het Configuratiescherm om het verschil tussen UTC en lokale tijd.
Bestanden die in dit updatepakket zijn opgenomen
BestandsnaamBestandsgrootteDatumTijdPad
Frame.cpp34,13313-Nov-201423:06Private\Winceos\Coreos\Core\Corelibc\Crtw32\Eh
Fullcrt.lib30,027,37809-Sep-201509:17Public\Common\Oak\Lib\X86\Checked
Fullcrt.lib30,228,29209-Sep-201509:17Public\Common\Oak\Lib\X86\Retail
Fullcrt.lib28,759,83609-Sep-201509:16Public\Common\Oak\Lib\X86\Debug
Fullcrt.lib29,278,30009-Sep-201509:17Public\Common\Oak\Lib\Armv7\Checked
Fullcrt.lib29,566,73009-Sep-201509:17Public\Common\Oak\Lib\Armv7\Retail
Fullcrt.lib33,139,56009-Sep-201509:16Public\Common\Oak\Lib\Armv7\Debug
Msvcr110d.dll1,339,95208-Sep-201505:26Public\Common\Sdk\Crt\Bin\X86
Msvcr110.dll754,22408-Sep-201505:26Public\Common\Sdk\Crt\Bin\X86
Msvcr110d.map1,287,57908-Sep-201505:26Public\Common\Sdk\Crt\Bin\X86
Msvcr110d.Rel528,83408-Sep-201505:26Public\Common\Sdk\Crt\Bin\X86
Msvcr110.map788,98608-Sep-201505:26Public\Common\Sdk\Crt\Bin\X86
Msvcr110.Rel242,16908-Sep-201505:26Public\Common\Sdk\Crt\Bin\X86
Msvcr110d.dll1,145,31208-Sep-201505:26Public\Common\Sdk\Crt\Bin\Arm
Msvcr110.dll539,60808-Sep-201505:26Public\Common\Sdk\Crt\Bin\Arm
Msvcr110d.map2,714,27508-Sep-201505:26Public\Common\Sdk\Crt\Bin\Arm
Msvcr110d.Rel215,92408-Sep-201505:26Public\Common\Sdk\Crt\Bin\Arm
Msvcr110.map1,258,31708-Sep-201505:26Public\Common\Sdk\Crt\Bin\Arm
Msvcr110.Rel122,16708-Sep-201505:26Public\Common\Sdk\Crt\Bin\Arm
Referenties
Meer informatie over de terminologie die door Microsoft wordt gebruikt om software-updates te beschrijven.

Waarschuwing: dit artikel is automatisch vertaald

Propriedades

ID do Artigo: 3008664 - Última Revisão: 10/30/2015 00:20:00 - Revisão: 1.0

Windows Embedded Compact 2013

  • kbautohotfix kbqfe kbhotfixserver kbfix kbmt KB3008664 KbMtnl
Comentários