徵狀
請試想下列案例:
-
您有 Visual C++ 2010年專案。 專案的原始程式碼有結構或超過 64 個位元組的類別。
-
您建置 x64 架構平台專案,並使用/O2編譯器選項。
-
您執行應用程式。
在這個案例,發生存取違規,而應用程式當機。
原因
X64 為主的 Visual Studio 2010 編譯器最佳化的程式碼,藉由調整為 16 個位元組的資料從 64 個位元組的配置對齊方式,就會發生這個問題。 因此,記憶體問題會發生超過 64 個位元組的物件。
解決方案
Hotfix 資訊
支援的 hotfix 可從 Microsoft 取得。 不過,此 Hotfix 僅用於修正本文中所述的問題。 此 Hotfix 只適用於發生此特定問題的系統上。 此 hotfix 可能會接受其他測試。 因此,如果此問題的影響不會很嚴重,我們建議您等候含此 hotfix 的下一版軟體更新。 若要下載此 hotfix,從 MSDN 程式碼庫,請造訪下列 Microsoft 網站:
http://code.msdn.microsoft.com/KB2280741答 5: 針對 Windows Server 2016 和 Windows 10 1709 版的 Windows Server 容器映像而發行的更新,包含適用於這組弱點的緩和措施,並且不需要額外設定。 MSDN 程式碼庫顯示 hotfix 是可用的語言。 如果看不到您所使用的語言,它是因為代碼庫資源頁面未提供該語言的支援。 答 5: 針對 Windows Server 2016 和 Windows 10 1709 版的 Windows Server 容器映像而發行的更新,包含適用於這組弱點的緩和措施,並且不需要額外設定。 如果發生其他問題,或如果需要進行疑難排解,您可能必須建立個別的服務要求。 收取支援費用會套用到其他支援問題和此特定 hotfix 無法解決的問題。 如需 Microsoft 客戶服務和支援的電話號碼或建立個別的服務要求的完整清單,請造訪下列 Microsoft 網站:
http://support.microsoft.com/contactus/?ws=support您也可以造訪下列 Microsoft 網站,以下載此 hotfix:
https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=31433
先決條件
若要套用此 hotfix,您必須安裝 Visual Studio 2010。
重新啟動需求
沒有套用 hotfix 之後,請重新啟動電腦。
Hotfix 取代資訊
此 hotfix 不會取代任何其他 hotfix。
檔案資訊
此 hotfix 的英文版具有下列表格中所列檔案屬性 (或較新的檔案屬性)。 這些檔案的日期與時間是以國際標準時間 (UTC) 表示。 當您檢視檔案資訊時,它會轉換為當地時間。 若要查看 UTC 與當地時間的時差,請在 [控制台] 中的日期和時間項目使用 [時區] 索引標籤。
檔案名稱 |
檔案版本 |
檔案大小 |
日期 |
時間 |
平台 |
---|---|---|---|---|---|
C2.dll |
16.0.30319.345 |
2,510,144 |
01-Aug-2010 |
23:42 |
x86 |
C2.dll |
16.0.30319.345 |
2,588,480 |
01-Aug-2010 |
23:42 |
x86 |
C2.dll |
16.0.30319.345 |
2,630,976 |
01-Aug-2010 |
23:42 |
x86 |
C2.dll |
16.0.30319.345 |
2,977,088 |
01-Aug-2010 |
23:42 |
x64 |
C2.dll |
16.0.30319.345 |
7,351,616 |
01-Aug-2010 |
23:42 |
IA-64 |
因應措施
若要解決這個問題,請勿/O2編譯器選項在建置專案時。
狀態
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。