狀況
應用程式設定為針對 x64 平台,藉由使用 Msvcr90.dll 檔案。應用程式呼叫strncpy函式。當您執行應用程式時,您可能會收到下列錯誤訊息,在 Visual Studio Just-In-Time 偵錯工具視窗中︰
在 'application_name' 中發生未處理的 win32 例外狀況
當您檢查呼叫堆疊時,您可能會發現 Msvcr90.dll 檔案中觸發存取違規,並確定應用程式會停止回應strncpy函式中。當下列情況成立時,就會發生這個問題︰
-
來源緩衝區延伸至配置的頁面結尾。
-
此頁面之後的下一個位元組不屬於執行中處理序。
-
要複製的長度是 8 的偶數乘數。
-
要複製的長度包含最後一個位元組的來源緩衝區。
原因
因為strncpy函式會嘗試存取下一個位元組的來源緩衝區之後,就會發生這個問題。這個問題導入新的最佳化,以一些 CRT 程式庫函式的。
解決方案
Hotfix 資訊
已經可以從 Microsoft 取得支援的 hotfix。不過,其旨在修正本文所述的問題。它只適用於發生此特定問題的系統上。此 hotfix 可能會接受其他測試。因此,如果此問題不會嚴重影響,我們建議您等候下一步的 Visual Studio 2008 service pack 包含此 hotfix。
若要立即解決這個問題,請連絡 Microsoft 客戶支援服務 」 取得 hotfix。如需 Microsoft 客戶支援服務電話號碼以及支援費用的相關資訊的完整清單,請造訪下列 Microsoft 網站︰
http://support.microsoft.com/contactus/?ws=support注意在特殊的情況下,如果 Microsoft 支援專業人員認為某特定更新程式可以解決您的問題時,可能就不會收取一般因支援電話所產生的費用。收取支援費用會套用,如果有其他支援問題是,不能限定的特定更新程式。
先決條件
您必須有 Visual Studio 2008 Service Pack 1 安裝套用此 hotfix 之後。
重新啟動需求
您不必套用此 hotfix 之後,重新啟動電腦。
Hotfix 取代資訊
此 hotfix 不會取代任何其他 hotfix。
檔案資訊
此 hotfix 的英文版具有下列表格中所列檔案屬性 (或較新的檔案屬性)。這些檔案的日期和時間會以國際標準時間 (UTC) 格式列出。當您檢視檔案資訊時,會將它轉換為本地時間。若要查看 UTC 與當地時間的時差,請在 [控制台] 中的日期和時間項目使用 [時區] 索引標籤。
檔案名稱 |
檔案版本 |
檔案大小 |
日期 |
時間 |
平台 |
---|---|---|---|---|---|
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 |
因應措施
若要解決這個問題,請使用下列方法之一︰
-
變更任何 < 徵狀=""> 一節所述的四個條件。
-
其他有類似的功能,例如memcpy函式或lstrcpyn函式的函式取代strncpy函式。
注意這些複本函式會略微不同。比方說, memcpy函式並不會結束字串複本,當一個 null 位元組就碰到指示的長度。
狀態
Microsoft 已確認這是<套用>一節所列出的 Microsoft 產品的問題。
更多的資訊
如需有關軟體更新術語的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
用來描述 Microsoft 軟體更新標準術語的編號 824684描述