Symptom

Du har ett program som har konfigurerats för att byggas för en x64 plattform med hjälp av Msvcr90.dll-fil. Tillämpningen anropar funktionen strncpy . När du kör programmet kan du få följande felmeddelande i fönstret Visual Studio in Debugger:

Ett ohanterat win32-undantag uppstod i "programnamn"

När du kontrollerar anropsstacken kanske utlöste ett åtkomstfel i filen Msvcr90.dll och att programmet slutar svara i strncpy -funktionen. Det här problemet uppstår när följande villkor är uppfyllda:

  • Källa bufferten sträcker sig till slutet av en sida som är allokerade.

  • Nästa byte efter den här sidan tillhör inte processen som körs.

  • Längden ska kopieras är en jämn multipel av 8.

  • Längden ska kopieras innehåller den sista byten i källa bufferten.

Orsak

Det här problemet uppstår eftersom funktionen strncpy försöker komma åt nästa byte efter källa bufferten. Det här problemet infördes genom nya optimeringar till vissa funktioner i CRT-biblioteket.

Lösning

Information om snabbkorrigeringen

En snabbkorrigering är nu tillgänglig från Microsoft. Den är emellertid avsedd att åtgärda det problem som beskrivs i denna artikel. Använd den bara på datorer där detta problem uppstår. Snabbkorrigeringen kan komma att testas igen. Om inte störs alltför mycket av detta problem rekommenderar vi att du väntar på Nästa service pack för Visual Studio 2008, som innehåller denna snabbkorrigering.Om du vill lösa problemet omedelbart kontaktar du Microsoft support för att få snabbkorrigeringen. En fullständig lista över telefonnummer till Microsoft Customer Support Services och information om supportkostnader finns på följande Microsoft-webbplats:

http://support.microsoft.com/contactus/?ws=supportObs! I särskilda fall avbryts de avgifter som är normala för supportsamtal om en supporttekniker anser att en särskild uppdatering kan lösa ditt problem. De vanliga supportkostnaderna gäller för övriga supportfrågor och problem som inte berör den särskilda uppdateringen.

Förutsättningar

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 när du har installerat den här snabbkorrigeringen.

Ersättningsinformation för Hotfix

Den här snabbkorrigeringen ersätter inte några andra snabbkorrigeringar.

Filinformation

Den engelska versionen av den här snabbkorrigeringen har de filattribut (eller senare filattribut) som visas i följande tabell. Datum och tider för dessa filer anges i UTC-tid (UTC). När du visar filinformationen konverteras den till lokal tid. Använd fliken tidszon i datum och tid på Kontrollpanelen om du vill se skillnaden mellan UTC-tid och lokal tid.

Filnamn

Filversion

Storlek

Datum

Tid

Plattform

Atl90.dll

9.0.30729.162

159,552

14-Oct-2008

02:32

x86

Mfc90.dll

9.0.30729.162

5,084,480

14-Oct-2008

01:12

x64

Mfc90.dll

9.0.30729.162

3,766,080

14-Oct-2008

02:32

x86

Mfc90chs.dll

9.0.30729.162

36,680

14-Oct-2008

01:12

x64

Mfc90chs.dll

9.0.30729.162

36,680

14-Oct-2008

02:32

x86

Mfc90cht.dll

9.0.30729.162

37,704

14-Oct-2008

01:12

x64

Mfc90cht.dll

9.0.30729.162

37,704

14-Oct-2008

02:32

x86

Mfc90d.dll

9.0.30729.162

7,419,200

14-Oct-2008

01:12

x64

Mfc90d.dll

9.0.30729.162

5,934,912

14-Oct-2008

02:32

x86

Mfc90deu.dll

9.0.30729.162

64,328

14-Oct-2008

01:12

x64

Mfc90deu.dll

9.0.30729.162

64,328

14-Oct-2008

02:32

x86

Mfc90enu.dll

9.0.30729.162

54,600

14-Oct-2008

01:12

x64

Mfc90enu.dll

9.0.30729.162

54,600

14-Oct-2008

02:32

x86

Mfc90esn.dll

9.0.30729.162

62,792

14-Oct-2008

01:12

x64

Mfc90esn.dll

9.0.30729.162

62,792

14-Oct-2008

02:32

x86

Mfc90esp.dll

9.0.30729.162

62,792

14-Oct-2008

01:12

x64

Mfc90esp.dll

9.0.30729.162

62,792

14-Oct-2008

02:32

x86

Mfc90fra.dll

9.0.30729.162

63,816

14-Oct-2008

01:12

x64

Mfc90fra.dll

9.0.30729.162

63,816

14-Oct-2008

02:32

x86

Mfc90ita.dll

9.0.30729.162

62,280

14-Oct-2008

01:12

x64

Mfc90ita.dll

9.0.30729.162

62,280

14-Oct-2008

02:32

x86

Mfc90jpn.dll

9.0.30729.162

44,360

14-Oct-2008

01:12

x64

Mfc90jpn.dll

9.0.30729.162

44,360

14-Oct-2008

02:32

x86

Mfc90kor.dll

9.0.30729.162

43,848

14-Oct-2008

01:12

x64

Mfc90kor.dll

9.0.30729.162

43,848

14-Oct-2008

02:32

x86

Mfc90u.dll

9.0.30729.162

5,103,424

14-Oct-2008

01:12

x64

Mfc90u.dll

9.0.30729.162

3,781,440

14-Oct-2008

02:32

x86

Mfc90ud.dll

9.0.30729.162

7,464,264

14-Oct-2008

01:12

x64

Mfc90ud.dll

9.0.30729.162

5,980,488

14-Oct-2008

02:32

x86

Mfcm90.dll

9.0.30729.162

67,072

14-Oct-2008

00:50

x64

Mfcm90.dll

9.0.30729.162

59 904

14-Oct-2008

00:20

x86

Mfcm90d.dll

9.0.30729.162

93,184

14-Oct-2008

00:50

x64

Mfcm90d.dll

9.0.30729.162

80,896

14-Oct-2008

00:20

x86

Mfcm90u.dll

9.0.30729.162

67,072

14-Oct-2008

00:50

x64

Mfcm90u.dll

9.0.30729.162

59 904

14-Oct-2008

00:20

x86

Mfcm90ud.dll

9.0.30729.162

93,696

14-Oct-2008

00:50

x64

Mfcm90ud.dll

9.0.30729.162

80,896

14-Oct-2008

00:20

x86

Mfcmifc80u.dll

9.0.30729.162

14,152

20-Oct-2008

17:19

x86

Microsoft.visualc.stlclr.dll

9.0.30729.162

49,000

20-Oct-2008

17:19

x86

Msvcm90.dll

9.0.30729.162

225,280

13-Oct-2008

21:59

x86

Msvcm90.dll

9.0.30729.162

324,096

13-Oct-2008

22:36

IA-64

Msvcm90.dll

9.0.30729.162

245,760

13-Oct-2008

23:40

x64

Msvcm90d.dll

9.0.30729.162

312,832

13-Oct-2008

21:59

x86

Msvcm90d.dll

9.0.30729.162

429,568

13-Oct-2008

22:37

IA-64

Msvcm90d.dll

9.0.30729.162

333 312

13-Oct-2008

23:40

x64

Msvcp90.dll

9.0.30729.162

1,467,208

14-Oct-2008

00:56

IA-64

Msvcp90.dll

9.0.30729.162

854,344

14-Oct-2008

01:12

x64

Msvcp90.dll

9.0.30729.162

570,696

14-Oct-2008

02:32

x86

Msvcp90d.dll

9.0.30729.162

2,514,760

14-Oct-2008

00:56

IA-64

Msvcp90d.dll

9.0.30729.162

1,121,608

14-Oct-2008

01:12

x64

Msvcp90d.dll

9.0.30729.162

873,288

14-Oct-2008

02:32

x86

Msvcr90.dll

9.0.30729.162

1,504,584

14-Oct-2008

00:56

IA-64

Msvcr90.dll

9.0.30729.162

624,456

14-Oct-2008

01:12

x64

Msvcr90.dll

9.0.30729.162

653,640

14-Oct-2008

02:32

x86

Msvcr90d.dll

9.0.30729.162

3,599,688

14-Oct-2008

00:56

IA-64

Msvcr90d.dll

9.0.30729.162

1,349,960

14-Oct-2008

01:12

x64

Msvcr90d.dll

9.0.30729.162

1,178,440

14-Oct-2008

02:32

x86

Vcomp90.dll

9.0.30729.162

142,664

14-Oct-2008

00:56

IA-64

Vcomp90.dll

9.0.30729.162

57,672

14-Oct-2008

01:12

x64

Vcomp90.dll

9.0.30729.162

52,040

14-Oct-2008

02:32

x86

Vcomp90d.dll

9.0.30729.162

317,256

14-Oct-2008

00:56

IA-64

Vcomp90d.dll

9.0.30729.162

105,800

14-Oct-2008

01:12

x64

Vcomp90d.dll

9.0.30729.162

89,416

14-Oct-2008

02:32

x86

Vcomp90ui.dll

9.0.30729.162

11,592

20-Oct-2008

17:19

x86

Vcredist_ia64.exe

9.0.30729.162

4,712,272

14-Oct-2008

19:32

x86

Vcredist_x64.exe

9.0.30729.162

5,236,560

14-Oct-2008

19:36

x86

Vcredist_x86.exe

9.0.30729.162

4,496,208

14-Oct-2008

19:28

x86

Temporär lösning

Undvik det här problemet genom att använda någon av följande metoder:

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

  • Ersätt funktionen strncpy med andra funktioner som har liknande funktionalitet, till exempel funktionen memcpyeller funktionen lstrcpyn .Obs! Funktionerna kopiera är något annorlunda. Funktionen memcpy slutar till exempel inte kopiera strängen när en null-byte påträffades innan den angivna längden.

Status

Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet "Gäller".

Mer Information

För mer information om terminologin 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 Microsoft-programuppdateringar

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.

Communities hjälper dig att ställa och svara på frågor, ge feedback och få råd från experter med rika kunskaper.