KORRIGERA: Felmeddelande när du kör ett program som är konfigurerat för att byggas för x64-plattformen med hjälp av MSVCR90.dll-filen som anropar strncpy-funktionen: "Ett ohanterat win32-undantag inträffade i 'application_name'"

Symptom

Du har ett program som är konfigurerat för att skapas för en x64-plattform med hjälp av Msvcr90.dll-filen. Programmet anropar funktionen strncpy. När du kör programmet kan du få följande felmeddelande i felsökningsfönstret för Visual Studio:

Obs

Ett ohanterat win32-undantag inträffade i "application_name"

När du kontrollerar anropsstacken kan du upptäcka att ett åtkomstfel utlöstes i Msvcr90.dll-filen och att programmet slutade svara i strncpy-funktionen. Det här problemet uppstår om följande villkor är sanna:

  • Källbufferten sträcker sig till slutet av en allokerad sida.
  • Nästa byte efter den här sidan tillhör inte processen som körs.
  • Längden som ska kopieras är en jämn multipel av 8.
  • Längden som ska kopieras inkluderar den sista byten i källbufferten.

Orsak

Det här problemet uppstår eftersom funktionen strncpy försöker komma åt nästa byte efter källbufferten. Det här problemet introduceras genom nya optimeringar av vissa CRT-biblioteksfunktioner.

Lösning

Information om snabbkorrigeringar

En snabbkorrigering som stöds är nu tillgänglig från Microsoft. Men avsikten är att korrigera de problem som beskrivs i den här artikeln. Använd den bara på system som har det här specifika problemet. Den här snabbkorrigeringen kan komma att testas ytterligare. Om du inte påverkas allvarligt av det här problemet rekommenderar vi därför att du väntar på nästa Visual Studio 2008 Service Pack som innehåller den här snabbkorrigeringen.

Lös problemet omedelbart genom att kontakta Microsofts kundsupport för att få snabbkorrigeringen. En fullständig lista över telefonnummer till Microsoft Support och information om supportkostnader finns på följande Microsoft-webbplats:

http://support.microsoft.com/contactus/?ws=support Obs! I särskilda fall kan avgifter som normalt tas ut för supportsamtal avbrytas om en professionell supporttekniker från Microsoft Support fastställer att en viss uppdatering kan lösa problemet. Normala supportavgifter tas ut för ytterligare supportfrågor och problem som inte gäller den aktuella uppdateringen.

Krav

Du måste ha Visual Studio 2008 Service Pack 1 installerat för att kunna installera den här snabbkorrigeringen.

Krav på omstart

Du behöver inte starta om datorn efter att du har installerat snabbkorrigeringen.

Ersättningsinformation för snabbkorrigeringar

Den här snabbkorrigeringen ersätter inte andra snabbkorrigeringar.

Filinformation

Den engelska versionen av den här snabbkorrigeringen har filattributen (eller senare filattribut) som listas i följande tabell. Datumen och tiderna för dessa filer anges i Coordinated Universal Time (UTC). När du visar filinformationen konverteras den till lokal tid. Om du vill hitta skillnaden mellan UTC och lokal tid använder du fliken Tidszon i objektet Datum och tid på kontrollpanelen.

Filnamn Filversion Filstorlek Datum Tid Plattform
Atl90.dll 9.0.30729.162 159,552 14-okt-2008 02:32 x86
Mfc90.dll 9.0.30729.162 5,084,480 14-okt-2008 01:12 x64
Mfc90.dll 9.0.30729.162 3,766,080 14-okt-2008 02:32 x86
Mfc90chs.dll 9.0.30729.162 36,680 14-okt-2008 01:12 x64
Mfc90chs.dll 9.0.30729.162 36,680 14-okt-2008 02:32 x86
Mfc90cht.dll 9.0.30729.162 37,704 14-okt-2008 01:12 x64
Mfc90cht.dll 9.0.30729.162 37,704 14-okt-2008 02:32 x86
Mfc90d.dll 9.0.30729.162 7,419,200 14-okt-2008 01:12 x64
Mfc90d.dll 9.0.30729.162 5,934,912 14-okt-2008 02:32 x86
Mfc90deu.dll 9.0.30729.162 64,328 14-okt-2008 01:12 x64
Mfc90deu.dll 9.0.30729.162 64,328 14-okt-2008 02:32 x86
Mfc90enu.dll 9.0.30729.162 54,600 14-okt-2008 01:12 x64
Mfc90enu.dll 9.0.30729.162 54,600 14-okt-2008 02:32 x86
Mfc90esn.dll 9.0.30729.162 62,792 14-okt-2008 01:12 x64
Mfc90esn.dll 9.0.30729.162 62,792 14-okt-2008 02:32 x86
Mfc90esp.dll 9.0.30729.162 62,792 14-okt-2008 01:12 x64
Mfc90esp.dll 9.0.30729.162 62,792 14-okt-2008 02:32 x86
Mfc90fra.dll 9.0.30729.162 63,816 14-okt-2008 01:12 x64
Mfc90fra.dll 9.0.30729.162 63,816 14-okt-2008 02:32 x86
Mfc90ita.dll 9.0.30729.162 62,280 14-okt-2008 01:12 x64
Mfc90ita.dll 9.0.30729.162 62,280 14-okt-2008 02:32 x86
Mfc90jpn.dll 9.0.30729.162 44,360 14-okt-2008 01:12 x64
Mfc90jpn.dll 9.0.30729.162 44,360 14-okt-2008 02:32 x86
Mfc90kor.dll 9.0.30729.162 43,848 14-okt-2008 01:12 x64
Mfc90kor.dll 9.0.30729.162 43,848 14-okt-2008 02:32 x86
Mfc90u.dll 9.0.30729.162 5,103,424 14-okt-2008 01:12 x64
Mfc90u.dll 9.0.30729.162 3,781,440 14-okt-2008 02:32 x86
Mfc90ud.dll 9.0.30729.162 7,464,264 14-okt-2008 01:12 x64
Mfc90ud.dll 9.0.30729.162 5,980,488 14-okt-2008 02:32 x86
Mfcm90.dll 9.0.30729.162 67,072 14-okt-2008 00:50 x64
Mfcm90.dll 9.0.30729.162 59,904 14-okt-2008 00:20 x86
Mfcm90d.dll 9.0.30729.162 93,184 14-okt-2008 00:50 x64
Mfcm90d.dll 9.0.30729.162 80,896 14-okt-2008 00:20 x86
Mfcm90u.dll 9.0.30729.162 67,072 14-okt-2008 00:50 x64
Mfcm90u.dll 9.0.30729.162 59,904 14-okt-2008 00:20 x86
Mfcm90ud.dll 9.0.30729.162 93,696 14-okt-2008 00:50 x64
Mfcm90ud.dll 9.0.30729.162 80,896 14-okt-2008 00:20 x86
Mfcmifc80u.dll 9.0.30729.162 14,152 20-okt-2008 17:19 x86
Microsoft.visualc.stlclr.dll 9.0.30729.162 49,000 20-okt-2008 17:19 x86
Msvcm90.dll 9.0.30729.162 225,280 13-okt-2008 21:59 x86
Msvcm90.dll 9.0.30729.162 324,096 13-okt-2008 22:36 IA-64
Msvcm90.dll 9.0.30729.162 245,760 13-okt-2008 23:40 x64
Msvcm90d.dll 9.0.30729.162 312,832 13-okt-2008 21:59 x86
Msvcm90d.dll 9.0.30729.162 429,568 13-okt-2008 22:37 IA-64
Msvcm90d.dll 9.0.30729.162 333,312 13-okt-2008 23:40 x64
Msvcp90.dll 9.0.30729.162 1,467,208 14-okt-2008 00:56 IA-64
Msvcp90.dll 9.0.30729.162 854,344 14-okt-2008 01:12 x64
Msvcp90.dll 9.0.30729.162 570,696 14-okt-2008 02:32 x86
Msvcp90d.dll 9.0.30729.162 2,514,760 14-okt-2008 00:56 IA-64
Msvcp90d.dll 9.0.30729.162 1,121,608 14-okt-2008 01:12 x64
Msvcp90d.dll 9.0.30729.162 873,288 14-okt-2008 02:32 x86
Msvcr90.dll 9.0.30729.162 1,504,584 14-okt-2008 00:56 IA-64
Msvcr90.dll 9.0.30729.162 624,456 14-okt-2008 01:12 x64
Msvcr90.dll 9.0.30729.162 653,640 14-okt-2008 02:32 x86
Msvcr90d.dll 9.0.30729.162 3,599,688 14-okt-2008 00:56 IA-64
Msvcr90d.dll 9.0.30729.162 1,349,960 14-okt-2008 01:12 x64
Msvcr90d.dll 9.0.30729.162 1,178,440 14-okt-2008 02:32 x86
Vcomp90.dll 9.0.30729.162 142,664 14-okt-2008 00:56 IA-64
Vcomp90.dll 9.0.30729.162 57,672 14-okt-2008 01:12 x64
Vcomp90.dll 9.0.30729.162 52,040 14-okt-2008 02:32 x86
Vcomp90d.dll 9.0.30729.162 317,256 14-okt-2008 00:56 IA-64
Vcomp90d.dll 9.0.30729.162 105,800 14-okt-2008 01:12 x64
Vcomp90d.dll 9.0.30729.162 89,416 14-okt-2008 02:32 x86
Vcomp90ui.dll 9.0.30729.162 11,592 20-okt-2008 17:19 x86
Vcredist_ia64.exe 9.0.30729.162 4,712,272 14-okt-2008 19:32 x86
Vcredist_x64.exe 9.0.30729.162 5,236,560 14-okt-2008 19:36 x86
Vcredist_x86.exe 9.0.30729.162 4,496,208 14-okt-2008 19:28 x86

Lösning

Använd någon av följande metoder för att kringgå problemet:

  • Ändra något av de fyra tillstånd som beskrivs i avsnittet "Symptom".

  • Ersätt funktionen strncpy med andra funktioner som har liknande funktioner, till exempel funktionen memcpy eller funktionen lstrcpyn.

    Obs! Dessa kopieringsfunktioner skiljer sig något åt. Till exempel avslutar inte memcpy-funktionen strängkopian när en null-byte påträffas före den angivna längden.

Status

Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".

Mer information

Om du vill veta mer om terminologi för programuppdateringar klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

824684 Beskrivning av standardterminologin som används för att beskriva Microsofts programuppdateringar