Síntomas
Imagine la siguiente situación:
-
Tiene un proyecto de Visual C++ 2010. El código fuente del proyecto tiene una estructura o clase que supera los 64 bytes.
-
Genere el proyecto para una plataforma basada en x64, y utilice la opción del compilador/O2 .
-
Ejecute la aplicación.
En este escenario, se produce una infracción de acceso y se bloquea la aplicación.
Causa
Este problema se produce porque el compilador basado en x64 de Visual Studio 2010 optimiza el código mediante el ajuste de la alineación de la asignación de datos de 64 bytes a 16 bytes. Por lo tanto, se produce un problema de memoria para los objetos que superan los 64 bytes.
Solución
Información de la revisión
Existe un hotfix disponible desde Microsoft. Sin embargo, esta revisión se diseñó para corregir únicamente el problema que se describe en este artículo. Aplíquela sólo a sistemas que experimenten este problema específico. Esta revisión podría ser sometida a comprobaciones adicionales. Por lo tanto, si no se ve muy afectado por este problema, recomendamos que espere a la próxima actualización de software que contenga este hotfix. Para descargar este hotfix desde MSDN Code Gallery, visite el siguiente sitio Web de Microsoft:
http://code.msdn.microsoft.com/KB2280741Nota: MSDN Code Gallery muestra los idiomas para los que la revisión está disponible. Si no ve su idioma en la lista, es porque la página de recursos de galería de código no está disponible para ese idioma. Nota: Si se producen problemas adicionales o si se requiere cualquier otra solución, será necesario crear una solicitud de revisión independiente. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no califican para esta revisión específica. Para obtener una lista completa de los números de teléfono de servicio al cliente de Microsoft o para crear una solicitud de servicio independiente, visite el siguiente sitio Web de Microsoft:
http://support.microsoft.com/contactus/?ws=supportTambién puede descargar esta revisión, visite el siguiente sitio Web de Microsoft:
https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=31433
Requisitos previos
Para aplicar este hotfix, debe tener Visual Studio 2010 instalado.
Requisito de reinicio
No es necesario que reinicie el equipo después de aplicar el hotfix.
Información de la sustitución de revisión
Este hotfix no sustituye a otras revisiones.
Información de archivo
La versión en inglés de esta revisión 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 expresan de acuerdo con la hora universal coordinada (UTC). Cuando vea la información del archivo, esta se convertirá a la 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.
Nombre del archivo |
Versión del archivo |
Tamaño del archivo |
Fecha |
Hora |
Plataforma |
---|---|---|---|---|---|
C2.dll |
16.0.30319.345 |
2,510,144 |
01-Aug-2010 |
23:42 |
x86 |
C2.dll |
16.0.30319.345 |
2,588,480 |
01-Aug-2010 |
23:42 |
x86 |
C2.dll |
16.0.30319.345 |
2,630,976 |
01-Aug-2010 |
23:42 |
x86 |
C2.dll |
16.0.30319.345 |
2,977,088 |
01-Aug-2010 |
23:42 |
x64 |
C2.dll |
16.0.30319.345 |
7,351,616 |
01-Aug-2010 |
23:42 |
IA-64 |
Solución
Para evitar este problema, no utilice la opción del compilador/O2 al compilar el proyecto.
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft recogidos en la sección "Se aplica a".