Cet article décrit un problème dans la gestion structurée des exceptions, les exceptions sont interceptées par un gestionnaire incorrect dans 2013 Compact de Windows Embedded. Une mise à jour est disponible pour résoudre ce problème. Avant d’installer cette mise à jour, toutes les mises à jour précédemment publiées pour ce produit doivent être installés.

Symptômes

Considérez le scénario suivant :

  • Le plug-in pour Visual Studio 2013 Application Builder vous permet de créer une application C++ qui cible 2013 Compact de Windows Embedded.

  • Vous activez la gestion à l’aide du commutateur de compilateur «/EHa» des exceptions asynchrones. Ce commutateur permet à la fois synchrones et structurées gestion des exceptions C++ asynchrone des exceptions (SEH) à être mélangées dans le même code de méthodes de gestion.

  • Vous exécutez le code associé pour intercepter les exceptions de gestion structurée des exceptions.

Dans ce scénario, les exceptions de gestion structurée des exceptions sont toujours interceptées dans le Gestionnaire d’exceptions de première, même si elle est filtrée pour une exception synchrone C++.

Le comportement attendu est exceptions SEH qui est interceptées par le Gestionnaire d’exceptions de points de suspension.

Par exemple, vous exécutez l’exemple de code suivant :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");
}
}
Dans cet exemple, vous avez atteint toujours la première clause catch lorsque l’exception SEH (division entière par zéro) se produit au lieu du Gestionnaire de points de suspension, comme prévu.

Résolution

Informations de mise à jour de logiciel

Windows Embedded Compact 2013 mise à jour mensuelle (septembre 2015) est désormais disponible auprès de Microsoft. Pour télécharger cette mise à jour mensuelle 2013 Compact intégré de Windows, accédez à ou .

Conditions préalables

Cette mise à jour est pris en charge que si toutes les mises à jour précédemment publiées pour ce produit ont également été installées.

Nécessite un redémarrage

Après avoir appliqué cette mise à jour, vous devez effectuer une génération complète de l’intégralité de la plateforme. Pour ce faire, utilisez une des méthodes suivantes :

  • Dans le menu Générer , sélectionnez Nettoyer la Solutionet sélectionnez Générer la Solution.

  • Dans le menu Générer , sélectionnez Régénérer la Solution.

Vous n’êtes pas obligé de redémarrer l’ordinateur après avoir appliqué cette mise à jour de logiciel.

Mettre à jour les informations sur le remplacement

Cette mise à jour ne remplace pas les autres mises à jour.

La version anglaise de ce package de mise à jour logicielle a les attributs de fichier (ou attributs ultérieurs) répertoriés dans le tableau suivant. Les dates et heures de ces fichiers sont répertoriées en temps universel coordonné (UTC). Lorsque vous affichez les informations de fichier, il est converti en heure locale. Pour trouver la différence entre l’UTC et l’heure locale, utilisez l’onglet fuseau horaire dans l’élément de Date et heure dans le panneau de configuration.

Fichiers qui sont inclus dans ce package de mise à jour

Nom de fichier

Taille du fichier

Date

Heure

Chemin d’accès

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


Références

Obtenir des informations sur la que Microsoft utilise pour décrire les mises à jour logicielles.

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la traduction ?

Qu’est-ce qui a affecté votre expérience ?

Avez-vous d’autres commentaires ? (Facultatif)

Nous vous remercions pour vos commentaires.

×