FIX: Uitzonderingen SEH gevangen door verkeerde uitzonderings-handler als uitzondering voor asynchrone verwerking is ingeschakeld in de WEC 2013

In dit artikel wordt een probleem in welke SEH uitzonderingen worden gevangen door een verkeerde handler in Windows ingesloten Compact 2013 beschreven. 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:

  • De invoegtoepassing voor Visual Studio 2013 Application Builder u maakt een C++-toepassing die doelen Windows ingesloten Compact 2013.

  • U kunt de asynchrone verwerking met behulp van de "/EHa" compiler-schakeloptie van uitzonderingen. Met deze schakeloptie kan zowel C++ synchrone en gestructureerde afhandeling van uitzonderingen methoden in dezelfde code om de verwerking van asynchrone uitzonderingen voor (SEH).

  • De gerelateerde code catch SEH uitzonderingen worden uitgevoerd.

In dit scenario 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. Ga naar of om te downloaden van de maandelijkse update van Windows ingesloten Compact 2013.

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 update hebt toegepast.

Informatie over het vervangen van updates

Deze update vervangen geen andere updates.

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 tabblad tijdzone in het onderdeel datum en tijd in het Configuratiescherm om het verschil tussen UTC en lokale tijd.

Bestanden die in dit updatepakket zijn opgenomen

Referenties

Meer informatie over de die door Microsoft wordt gebruikt om softwareupdates te beschrijven.

Meer hulp nodig?

Uw vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Microsoft insiders

Was deze informatie nuttig?

Bedankt voor uw feedback.

Hartelijk dank voor uw feedback! Het lijkt ons een goed idee om u in contact te brengen met een van onze Office-ondersteuningsagenten.

×