修正︰ C2371、 C2556 或 C2511 錯誤當您編譯 Visual Studio 2012 Visual C++ 的專案

狀況

徵狀 1

當您編譯具有特定的位移處的列舉型別宣告的 Microsoft Visual C++ 專案時,您可能會收到 C2371、 C2556 或 C2511 的錯誤。

原因 1

之所以發生這個問題,是因為編譯器錯誤剖析檔案緩衝區的結尾,就會發生的列舉型別宣告程式碼 [在檔案位移 (4096 * n)-1]。

徵狀 2

您編譯 Visual C++ 的專案具有虛擬函式呼叫傳回物件和所傳回的值繫結至參考。您也有啟用/clr選項。在此情況下,您可能會收到執行階段存取違規例外狀況。

原因 2

隱含的存留期的副檔名繫結至const參考暫存值無法運作如果下列情況成立,就會發生這個問題︰

  • 以/clr編譯專案。

  • 暫時的值會是虛擬函式呼叫或透過函式指標的函式呼叫傳回的值。

解決方案

Hotfix 資訊

支援的 hotfix 可從 Microsoft 取得。不過,此 Hotfix 僅用於修正本文中所述的問題。此 Hotfix 只適用於發生此特定問題的系統上。

如果 Hotfix 可供下載,在此知識庫文件頂端將出現<有可用的 Hotfix 供您下載>區段。如果這個區段不會出現,將要求提交給 Microsoft 客戶服務及支援取得 Hotfix。

注意如果發生其他問題,或如果需要進行疑難排解,您可能必須建立個別的服務要求。收取支援費用會套用到其他支援問題和此特定 hotfix 無法解決的問題。如 Microsoft 客戶服務及支援的電話號碼或建立個別的服務要求的完整清單,請造訪下列 Microsoft 網站︰

http://support.microsoft.com/contactus/?ws=support注意「 可下載 Hotfix 」表單會顯示 hotfix 可用的語言。如果看不到您的語言,是因為未提供該語言的 Hotfix 。

先決條件

若要套用此 hotfix,您必須使用 Microsoft Visual Studio 2012 更新 4 安裝。

重新啟動需求

您可能必須重新啟動電腦,如果受影響的檔案不在使用一次的安裝,安裝 hotfix 之後。我們建議您安裝此 hotfix 之前,關閉所有 Visual Studio 2012 相關的元件。

狀態

Microsoft 已確認這是<套用>一節所列出的 Microsoft 產品的問題。

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

Thank you for your feedback!

Thank you for your feedback! It sounds like it might be helpful to connect you to one of our Office support agents.

×