REVISIÓN: Se produce una infracción de acceso cuando ejecuta una aplicación basada en Visual C++ 2010 para plataformas basadas en x64 si usas el "/ O2" opción del compilador para compilar el proyecto

Se aplica a: Visual Studio 2010

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: Nota: 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: También puede descargar esta revisión, visite el siguiente sitio Web de Microsoft:

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 archivoVersión del archivoTamaño del archivoFechaHoraPlataforma
C2.dll16.0.30319.3452,510,14401-Aug-201023:42x86
C2.dll16.0.30319.3452,588,48001-Aug-201023:42x86
C2.dll16.0.30319.3452,630,97601-Aug-201023:42x86
C2.dll16.0.30319.3452,977,08801-Aug-201023:42x64
C2.dll16.0.30319.3457,351,61601-Aug-201023:42IA-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".