REVISIÓN: Se detectan las excepciones de SEH controlador de excepciones incorrecto cuando está habilitado el control de excepciones asincrónicas en WEC 2013

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 3008664
Este artículo describe un problema en qué SEH se detectan las excepciones por un controlador incorrecto en 2013 de Windows Embedded Compact. Hay una actualización corregir este problema. Antes de instalar esta actualización, deben instalar todas las actualizaciones publicadas previamente para este producto.
Síntomas
Considere el siguiente escenario:
  • Utilice el complemento para Visual Studio 2013 Application Builder para crear una aplicación de C++ destinada a 2013 de Windows Embedded Compact.
  • Habilitar el excepciones asincrónico utilizando el "/ EHa"modificador del compilador. Este modificador permite que ambos sincrónica y estructurado de excepciones de C++ controlar métodos mezclar en el mismo código de control de excepción asincrónica (SEH).
  • Ejecute el código relacionado para detectar excepciones SEH.
En este escenario, siempre se detectan las excepciones de SEH en el primer controlador de excepción incluso si se filtra para una excepción de C++ sincrónica.

El comportamiento esperado es excepciones SEH ser capturadas por el controlador de excepciones de puntos suspensivos.

Por ejemplo, ejecute el siguiente código de ejemplo:
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");    }}
En este ejemplo, siempre alcanzará la primera cláusula catch cuando se produce la excepción de SEH (entero dividido por cero) en lugar del controlador de puntos suspensivos como se esperaba.

Solución

Información de actualización de software

Windows Embedded Compact 2013 actualización mensual (septiembre de 2015) ahora está disponible de Microsoft. Para descargar esta actualización mensual de Windows Embedded de 2013 Compact, vaya a OEM de Microsoft en línea o MyOEM.

Requisitos previos

Esta actualización es compatible sólo si también se han instalado todas las actualizaciones publicadas previamente para este producto.

Requisito de reinicio

Después de aplicar esta actualización, debe realizar una compilación limpia de toda la plataforma. Para ello, utilice uno de los métodos siguientes:
  • En el menú Generar, seleccione Limpiar solucióny, a continuación, seleccione Generar solución.
  • En el menú Generar, seleccione Generar solución.
No tienes que reiniciar el equipo después de aplicar esta actualización de software.

Información de reemplazo de actualización

Esta actualización no sustituye a otras actualizaciones.

Información de archivo

La versión en inglés de este paquete de actualización de software tiene los atributos de archivo (o atributos del archivo más reciente) mostrados en la tabla siguiente. Las fechas y horas de estos archivos se muestran en la hora Universal coordinada (UTC). Al ver la información del archivo, se convierte en hora local. Para encontrar la diferencia entre la hora UTC y la hora local, utilice la fichazona horaria en el elemento fecha y hora del Panel de Control.
Archivos que se incluyen en este paquete de actualización
Nombre del archivoTamaño de archivoFechaHoraRuta de acceso
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
Referencias
Obtenga información acerca de la terminología que utiliza Microsoft para describir las actualizaciones de software.

Propiedades

Id. de artículo: 3008664 - Última revisión: 10/30/2015 01:01:00 - Revisión: 1.0

Windows Embedded Compact 2013

  • kbautohotfix kbqfe kbhotfixserver kbfix kbmt KB3008664 KbMtes
Comentarios