Poprawka: Komunikat o błędzie podczas uruchamiania aplikacji jest skonfigurowany mają zostać zbudowane dla x64 platformy przy użyciu pliku MSVCR90.dll, który wywołuje funkcję strncpy: "Wystąpił wyjątek nieobsłużony win32 w 'nazwa_aplikacji'"


Objawy


Aplikacja jest skonfigurowana do wbudowania x64 platformy przy użyciu pliku Msvcr90.dll. Aplikacja wywołuje funkcję strncpy . Po uruchomieniu aplikacji może zostać wyświetlony następujący komunikat o błędzie w oknie Visual Studio Debugger just in time:
Wystąpił wyjątek nieobsłużony win32 w "nazwa_aplikacji"
Podczas sprawdzania stosu wywołań, może się okazać wyzwolone błąd naruszenia zasad dostępu w pliku Msvcr90.dll i że aplikacja przestał odpowiadać w funkcji strncpy . Ten problem występuje, gdy są spełnione następujące warunki:
  • Bufor źródłowy rozciąga się na końcu przydzielonego strony.
  • Następny bajt po tej stronie nie należy do uruchomionego procesu.
  • Długość do skopiowania jest parzysta wielokrotność 8.
  • Długość do skopiowania zawiera końcowy bajt buforu źródłowego.

Przyczyna


Ten problem występuje, ponieważ funkcja strncpy próbuje uzyskać dostęp następny bajt po buforu źródłowego. Ten problem został wprowadzony przez nowe optymalizacje niektórych funkcji biblioteki CRT.

Rozwiązanie


Informacje o poprawce

Obsługiwana poprawka jest obecnie udostępniana przez firmę Microsoft. Jednak jest ona przeznaczona do usunięcia tylko problemu opisanego w tym artykule. Zastosuj ją tylko w systemach, w których występuje ten problem. Ta poprawka może być wciąż w fazie testowania. Jeśli dany system nie jest poważnie narażony na ten problem, firma Microsoft zaleca, aby poczekać na następny program Visual Studio 2008 z dodatkiem Service pack zawierający tę poprawkę.

Aby natychmiast rozwiązać ten problem, skontaktuj się z biurem obsługi klienta Microsoft w celu uzyskania poprawki. Aby uzyskać pełną listę numerów telefonów pomocy technicznej firmy Microsoft oraz informacje o pomocy technicznej odwiedź następującą witrynę firmy Microsoft w sieci Web:Uwaga W wyjątkowych przypadkach opłaty za połączenie z pomocą techniczną mogą zostać anulowane, jeśli specjalista firmy Microsoft zdecyduje że określona aktualizacja, może rozwiązać Twój problem. Koszty obsługi zwykłych zastosuje się do dodatkowych pytań i problemów, których nie można rozwiązać przy użyciu określonej aktualizacji.

Wymagania wstępne

Musi mieć Visual Studio 2008 z dodatkiem Service Pack 1 zainstalowany, aby można było zastosować tę poprawkę.

Wymagania dotyczące ponownego uruchomienia

Nie musisz ponownie uruchomiać komputera po zastosowaniu tej poprawki.

Informacje dotyczące zastępowania poprawek

Ta poprawka nie zastępuje żadnych innych poprawek.

Informacje o plikach

Wersja anglojęzyczna tej poprawki ma atrybuty plików (lub nowsze) wymienione w poniższej tabeli. Daty i godziny odpowiadające tym plikom zostały podane w formacie uniwersalnego czasu koordynowanego (UTC, Coordinated Universal Time). Po wyświetleniu informacji o pliku są konwertowane na czas lokalny. Aby zobaczyć różnicę między czasem UTC i czasem lokalnym, należy użyć z karty Strefa czasowa w aplecie Data i godzina w Panelu sterowania.
Nazwa plikuWersja plikuRozmiar plikuDataGodzinaPlatforma
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.16224576013-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

Obejście problemu


Aby obejść ten problem, użyj jednej z następujących metod:
  • Zmienić dowolne cztery warunki, które opisano w sekcji "Symptomy".
  • Replace, funkcja strncpy z innymi funkcjami, które mają podobne funkcje, takie jak funkcji memcpylub lstrcpyn .

    Uwaga Tych funkcji kopiowania są nieco inne. Na przykład funkcji memcpy nie kończy kopia ciągu po napotkaniu bajtem null przed wskazanej długości.

Stan


Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.

Więcej informacji


Aby uzyskać więcej informacji dotyczących terminologii aktualizacji oprogramowania, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
824684 Opis standardowej terminologii używanej do opisywania aktualizacji oprogramowania firmy Microsoft