REVISIÓN: Aparece un mensaje de Error al ejecutar una aplicación que está configurado para compilarse para la plataforma x 64 con el archivo MSVCR90.dll que llama a la función strncpy: "Error de excepción win32 no controlada en 'application_name'"


Síntomas


Tiene una aplicación que está configurada para generarse para una x64 plataforma mediante el archivo Msvcr90.dll. La aplicación llama a la función strncpy . Cuando se ejecuta la aplicación, puede recibir el siguiente mensaje de error en la ventana del depurador de Visual Studio Just:
Se produjo una excepción win32 no controlada en 'nombre_de_aplicación'
Al comprobar la pila de llamadas, es posible se desencadenó una infracción de acceso en el archivo Msvcr90.dll y que la aplicación dejó de responder en la función strncpy . Este problema se produce cuando se cumplen las condiciones siguientes:
  • El búfer de origen se extiende hasta el final de una página asignada.
  • El siguiente byte después de esta página no pertenece al proceso en ejecución.
  • La longitud se copien es un múltiplo de 8.
  • La longitud se copien incluye el byte final del búfer de origen.

Causa


Este problema se produce porque la función strncpy intenta tener acceso el siguiente byte después el búfer de origen. Este problema se presenta por nuevas optimizaciones para algunas funciones de la biblioteca CRT.

Solución


Información de la revisión

Ahora hay una revisión compatible de Microsoft. Sin embargo, se pretende corregir el problema que se describe en este artículo. Aplíquela sólo a sistemas que experimenten este problema específico. Esta revisión puede ser sometida a comprobaciones adicionales. Por lo tanto, si no se ve muy afectado por este problema, recomendamos que espere al próximo service pack de Visual Studio 2008 que contenga este hotfix.

Para resolver este problema inmediatamente, póngase en contacto con los servicios de soporte técnico de Microsoft para obtener la revisión. Para obtener una lista completa de números de teléfono de los servicios de soporte al cliente de Microsoft e información acerca de los costos de soporte técnico, visite el siguiente sitio Web de Microsoft:Nota: En casos especiales, los costos derivados normalmente de las llamadas al soporte técnico pueden cancelarse si un profesional de soporte técnico de Microsoft determina que una actualización específica resolverá el problema. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no guarden relación con la actualización en cuestión.

Requisitos previos

Debe tener Visual Studio 2008 Service Pack 1 instalado para aplicar esta revisión.

Requisito de reinicio

No es necesario que reinicie el equipo después de aplicar este hotfix.

Información de reemplazo 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 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 de Fecha y hora del Panel de control.
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
Atl90.dll9.0.30729.162159,55214-Oct-200802:32x86
Mfc90.dll9.0.30729.1625,084,48014-Oct-200801:12x64
Mfc90.dll9.0.30729.1623,766,08014-Oct-200802:32x86
Mfc90chs.dll9.0.30729.16236,68014-Oct-200801:12x64
Mfc90chs.dll9.0.30729.16236,68014-Oct-200802:32x86
Mfc90cht.dll9.0.30729.16237,70414-Oct-200801:12x64
Mfc90cht.dll9.0.30729.16237,70414-Oct-200802:32x86
Mfc90d.dll9.0.30729.1627,419,20014-Oct-200801:12x64
Mfc90d.dll9.0.30729.1625,934,91214-Oct-200802:32x86
Mfc90deu.dll9.0.30729.16264,32814-Oct-200801:12x64
Mfc90deu.dll9.0.30729.16264,32814-Oct-200802:32x86
Mfc90enu.dll9.0.30729.16254,60014-Oct-200801:12x64
Mfc90enu.dll9.0.30729.16254,60014-Oct-200802:32x86
Mfc90esn.dll9.0.30729.16262,79214-Oct-200801:12x64
Mfc90esn.dll9.0.30729.16262,79214-Oct-200802:32x86
Mfc90esp.dll9.0.30729.16262,79214-Oct-200801:12x64
Mfc90esp.dll9.0.30729.16262,79214-Oct-200802:32x86
Mfc90fra.dll9.0.30729.16263,81614-Oct-200801:12x64
Mfc90fra.dll9.0.30729.16263,81614-Oct-200802:32x86
Mfc90ita.dll9.0.30729.16262,28014-Oct-200801:12x64
Mfc90ita.dll9.0.30729.16262,28014-Oct-200802:32x86
Mfc90jpn.dll9.0.30729.16244,36014-Oct-200801:12x64
Mfc90jpn.dll9.0.30729.16244,36014-Oct-200802:32x86
Mfc90kor.dll9.0.30729.16243,84814-Oct-200801:12x64
Mfc90kor.dll9.0.30729.16243,84814-Oct-200802:32x86
Mfc90u.dll9.0.30729.1625,103,42414-Oct-200801:12x64
Mfc90u.dll9.0.30729.1623,781,44014-Oct-200802:32x86
Mfc90ud.dll9.0.30729.1627,464,26414-Oct-200801:12x64
Mfc90ud.dll9.0.30729.1625,980,48814-Oct-200802:32x86
Mfcm90.dll9.0.30729.16267,07214-Oct-200800:50x64
Mfcm90.dll9.0.30729.16259.90414-Oct-200800:20x86
Mfcm90d.dll9.0.30729.16293,18414-Oct-200800:50x64
Mfcm90d.dll9.0.30729.16280,89614-Oct-200800:20x86
Mfcm90u.dll9.0.30729.16267,07214-Oct-200800:50x64
Mfcm90u.dll9.0.30729.16259.90414-Oct-200800:20x86
Mfcm90ud.dll9.0.30729.16293,69614-Oct-200800:50x64
Mfcm90ud.dll9.0.30729.16280,89614-Oct-200800:20x86
Mfcmifc80u.dll9.0.30729.16214,15220-Oct-200817:19x86
Microsoft.visualc.stlclr.dll9.0.30729.16249.00020-Oct-200817:19x86
Msvcm90.dll9.0.30729.162225.28013-Oct-200821:59x86
Msvcm90.dll9.0.30729.162324,09613-Oct-200822:36IA-64
Msvcm90.dll9.0.30729.162245,76013-Oct-200823:40x64
Msvcm90d.dll9.0.30729.162312,83213-Oct-200821:59x86
Msvcm90d.dll9.0.30729.162429,56813-Oct-200822:37IA-64
Msvcm90d.dll9.0.30729.162333.31213-Oct-200823:40x64
Msvcp90.dll9.0.30729.1621,467,20814-Oct-200800:56IA-64
Msvcp90.dll9.0.30729.162854,34414-Oct-200801:12x64
Msvcp90.dll9.0.30729.162570,69614-Oct-200802:32x86
Msvcp90d.dll9.0.30729.1622,514,76014-Oct-200800:56IA-64
Msvcp90d.dll9.0.30729.1621,121,60814-Oct-200801:12x64
Msvcp90d.dll9.0.30729.162873,28814-Oct-200802:32x86
Msvcr90.dll9.0.30729.1621,504,58414-Oct-200800:56IA-64
Msvcr90.dll9.0.30729.162624,45614-Oct-200801:12x64
Msvcr90.dll9.0.30729.162653,64014-Oct-200802:32x86
Msvcr90d.dll9.0.30729.1623,599,68814-Oct-200800:56IA-64
Msvcr90d.dll9.0.30729.1621,349,96014-Oct-200801:12x64
Msvcr90d.dll9.0.30729.1621,178,44014-Oct-200802:32x86
Vcomp90.dll9.0.30729.162142,66414-Oct-200800:56IA-64
Vcomp90.dll9.0.30729.16257,67214-Oct-200801:12x64
Vcomp90.dll9.0.30729.16252,04014-Oct-200802:32x86
Vcomp90d.dll9.0.30729.162317,25614-Oct-200800:56IA-64
Vcomp90d.dll9.0.30729.162105,80014-Oct-200801:12x64
Vcomp90d.dll9.0.30729.16289,41614-Oct-200802:32x86
Vcomp90ui.dll9.0.30729.16211,59220-Oct-200817:19x86
Vcredist_ia64.exe9.0.30729.1624,712,27214-Oct-200819:32x86
Vcredist_x64.exe9.0.30729.1625,236,56014-Oct-200819:36x86
Vcredist_x86.exe9.0.30729.1624,496,20814-Oct-200819:28x86

Solución alternativa


Para evitar este problema, utilice uno de los métodos siguientes:
  • Cambiar cualquiera de las cuatro condiciones que se describen en la sección "Síntomas".
  • Reemplace la función strncpy con otras funciones que tienen una funcionalidad similar, como la función memcpyo lstrcpyn .

    Nota: Estas funciones de copia son ligeramente diferentes. Por ejemplo, la función memcpy no finaliza la copia de cadena cuando se encuentra un byte null antes de la longitud indicada.

Estado


Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Más información


Para obtener más información acerca de la terminología de la actualización de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684 descripción de la terminología estándar que se utiliza para describir las actualizaciones de software de Microsoft