FIX: Eccezioni SEH vengono rilevate dal gestore eccezioni errato quando è attivata la gestione delle eccezioni asincrone in WEC 2013

In questo articolo viene descritto un problema in cui SEH eccezioni vengono individuate da un gestore errato nel 2013 compatto incorporato di Windows. Un aggiornamento è disponibile per risolvere il problema. Prima di installare questo aggiornamento, è necessario installare tutti gli aggiornamenti rilasciati in precedenza per questo prodotto.

Sintomi

Si consideri lo scenario seguente:

  • Utilizzare il plug-in per Visual Studio 2013 Application Builder per creare un'applicazione C++ destinato a 2013 compatto incorporato di Windows.

  • Attivare le eccezioni asincrone utilizzando l'opzione del compilatore "/EHa". Questa opzione consente sia sincrona e strutturata gestione delle eccezioni C++ metodi per combinare nello stesso codice di gestione delle eccezioni asincrone (SEH).

  • Eseguire il codice correlato per rilevare le eccezioni SEH.

In questo scenario, vengono intercettate sempre eccezioni SEH molto primo gestore eccezioni anche se viene filtrata in modo sincrona eccezione C++.

Il comportamento previsto è eccezioni SEH viene intercettate dal gestore eccezioni i puntini di sospensione.

Ad esempio, si esegue il codice di esempio seguente: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 questo esempio, si colpisce sempre la prima clausola catch quando si verifica l'eccezione SEH (divisione intera per zero) anziché il gestore con i puntini di sospensione come previsto.

Risoluzione

Informazioni sull'aggiornamento del software

Windows Embedded Compact 2013 aggiornamento mensile (settembre 2015) è ora disponibile da Microsoft. Per scaricare questo aggiornamento mensile 2013 compatto incorporato di Windows, passare a o .

Prerequisiti

Questo aggiornamento è supportato solo se tutti gli aggiornamenti rilasciati in precedenza per questo prodotto sono inoltre stati installati.

Richiesta di riavvio

Dopo avere applicato questo aggiornamento, è necessario eseguire una generazione pulita dell'intera piattaforma. A tale scopo, utilizzare uno dei seguenti metodi:

  • Dal menu Genera scegliere Pulisci soluzionee quindi scegliere Genera soluzione.

  • Scegliere Ricompila soluzionedal menu Compila .

Non è necessario riavviare il computer dopo avere applicato questo aggiornamento software.

Informazioni sulla sostituzione dell'aggiornamento

Questo aggiornamento non sostituisce eventuali altri aggiornamenti.

La versione inglese di questo pacchetto di aggiornamento software presenta gli attributi di file (o attributi successivi) elencati nella tabella riportata di seguito. Le date e ore dei file sono elencate in base al formato UTC (Coordinated Universal Time Coordinated). Quando si visualizzano le informazioni sul file, viene convertito in ora locale. Per calcolare la differenza tra ora UTC e ora locale, utilizzare la scheda fuso orario nell'elemento di Data e ora nel Pannello di controllo.

File inclusi nel pacchetto di aggiornamento

Nome del file

Dimensione del file

Data

Ora

Percorso

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


Riferimenti

Informazioni sulla utilizzata da Microsoft per descrivere gli aggiornamenti software.

Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Grazie per il feedback!

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×