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

IMPORTANTE: il presente articolo è stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l’obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre è perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilità per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualità della traduzione.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 3008664
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 il "/EHa"opzione del compilatore. 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, visitare Microsoft OEM Online o MyOEM.

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 Generascegliere 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.

Informazioni sui file

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 schedafuso orario nell'elemento di Data e ora nel Pannello di controllo.
File inclusi nel pacchetto di aggiornamento
Nome del fileDimensione del fileDataOraPercorso
Frame.cpp34,13313-Nov-2014.23:06Private\Winceos\Coreos\Core\Corelibc\Crtw32\Eh
Fullcrt.lib30,027,37809-set-201509:17Public\Common\Oak\Lib\X86\Checked
Fullcrt.lib30,228,29209-set-201509:17Public\Common\Oak\Lib\X86\Retail
Fullcrt.lib28,759,83609-set-201509:16Public\Common\Oak\Lib\X86\Debug
Fullcrt.lib29,278,30009-set-201509:17Public\Common\Oak\Lib\Armv7\Checked
Fullcrt.lib29,566,73009-set-201509:17Public\Common\Oak\Lib\Armv7\Retail
Fullcrt.lib33,139,56009-set-201509:16Public\Common\Oak\Lib\Armv7\Debug
Msvcr110d.dll1,339,95208-set-201505:26Public\Common\Sdk\Crt\Bin\X86
Msvcr110.dll754,22408-set-201505:26Public\Common\Sdk\Crt\Bin\X86
Msvcr110d.Map1,287,57908-set-201505:26Public\Common\Sdk\Crt\Bin\X86
Msvcr110d.rel528,83408-set-201505:26Public\Common\Sdk\Crt\Bin\X86
Msvcr110.Map788,98608-set-201505:26Public\Common\Sdk\Crt\Bin\X86
Msvcr110.rel242,16908-set-201505:26Public\Common\Sdk\Crt\Bin\X86
Msvcr110d.dll1,145,31208-set-201505:26Public\Common\Sdk\Crt\Bin\Arm
Msvcr110.dll539,60808-set-201505:26Public\Common\Sdk\Crt\Bin\Arm
Msvcr110d.Map2,714,27508-set-201505:26Public\Common\Sdk\Crt\Bin\Arm
Msvcr110d.rel215,92408-set-201505:26Public\Common\Sdk\Crt\Bin\Arm
Msvcr110.Map1,258,31708-set-201505:26Public\Common\Sdk\Crt\Bin\Arm
Msvcr110.rel122,16708-set-201505:26Public\Common\Sdk\Crt\Bin\Arm
Riferimenti
Per ulteriori informazioni, vedere la terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 3008664 - Ultima revisione: 10/30/2015 00:53:00 - Revisione: 1.0

Windows Embedded Compact 2013

  • kbautohotfix kbqfe kbhotfixserver kbfix kbmt KB3008664 KbMtit
Feedback