Iniciar sesión con Microsoft
Iniciar sesión o crear una cuenta
Hola:
Seleccione una cuenta diferente.
Tiene varias cuentas
Elija la cuenta con la que desea iniciar sesión.

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 para corregir este problema. Antes de instalar esta actualización, deben instalar todas las actualizaciones publicadas previamente para este producto.

Síntomas

Imagine 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 mediante el modificador de compilador "/EHa". 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 Compact 2013, vaya a OEM de Microsoft en línea o MyOEM.

Requisitos previos

Esta actualización es compatible solo 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 tiene que reiniciar el equipo después de aplicar esta actualización de software.

Información para sustituir la actualización

Esta actualización no sustituye a otras actualizaciones.

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 ficha zona horaria en el elemento fecha y hora del Panel de Control.

Archivos que se incluyen en este paquete de actualización

Nombre del archivo

Tamaño de archivo

Fecha

Hora

Ruta de acceso

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


Referencias

Obtenga información acerca de la terminología que utiliza Microsoft para describir las actualizaciones de software.

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a su experiencia?
Si presiona Enviar, sus comentarios se usarán para mejorar los productos y servicios de Microsoft. El administrador de TI podrá recopilar estos datos. Declaración de privacidad.

¡Gracias por sus comentarios!

×