您目前已離線,請等候您的網際網路重新連線

在 Visual C++ R6025 執行階段錯誤的描述

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

按一下這裡查看此文章的英文版本:125749
結論
本文將告訴您,當您正在開發程式時可能發生的問題。如果您仍然遇到類似本文所描述的問題,它可能是不同的問題。若要搜尋特定的問題與相關的問題,請併入產品名稱搜尋以縮小結果。如果要疑難排解類似問題,請參閱本篇文章稍後的 < 類似的問題與解決方式 > 一節。
徵狀
C + + 程式將會失敗,並且會報告下列的執行階段錯誤 ︰
執行階段錯誤 R6025
-純虛擬函式呼叫
發生的原因
當您的應用程式間接呼叫純虛擬成員函式在內容中呼叫的函式不正確,就會發生此錯誤。在大部分的情況下,編譯器會偵測出這,並建置應用程式時報告錯誤。但是,根據寫入您的程式碼的方式,有時候偵測到問題只會在執行階段。

當您間接呼叫建構函式呼叫的內容或抽象基底類別的解構函式內的純虛擬函式時,就會發生錯誤。範例將下列程式碼,以及一些更多說明] 所示。
解決方案
呼叫純虛擬函式是程式設計錯誤,所以您必須尋找純虛擬函式的呼叫,並將程式碼的撰寫,因此它不會呼叫。

若要尋找純虛擬函式呼叫的方法之一是以取代純虛擬函式呼叫 Windows API 函式DebugBreak的實作。使用偵錯工具, DebugBreak會硬式編碼的中斷點。當程式碼停止此中斷點在執行時,您可以檢視以查看呼叫函數的呼叫堆疊。

若要尋找純虛擬函式呼叫的另一個方法是位於 PureVirt.c 的_purecall函式上設定中斷點。在這個函式上的中斷的優點是能夠保持堆疊不變,如此您就可以追蹤發生了什麼狀況。
狀況說明
此行為是系統設計的一部份。
其他相關資訊
如需詳細資訊,請參閱下列的 Microsoft 開發人員網路 (MSDN) 網站的 「 組建錯誤 」 一節的"C 執行階段錯誤 R6002 到 R6025 」 頁面 ︰注意R6025 錯誤並未記載在的任何手冊或線上說明隨附 Visual C++,版本 2.x 或位於其下。不過,它會簡短討論在第 3 篇 Visual C++ 2.0 版所隨附的 Readme.wri 檔案。

範例程式碼

   /* Compile options needed: none   */    class A;   void fcn( A* );   class A   {   public:       virtual void f() = 0;       A() { fcn( this ); }   };   class B : A   {       void f() { }   };   void fcn( A* p )   {       p->f();   }   // The declaration below invokes class B's constructor, which   // first calls class A's constructor, which calls fcn. Then   // fcn calls A::f, which is a pure virtual function, and   // this causes the run-time error. B has not been constructed   // at this point, so the B::f cannot be called. You would not   // want it to be called because it could depend on something   // in B that has not been initialized yet.   B b;   void main()   {   }				
類似的問題與解決方案
如果您仍然遇到類似本文所描述問題的問題,它可能是不同的問題。 如需有關類似問題與解決方案的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件 ︰
240437 金錢執行階段錯誤:"R6025-純虛擬函式呼叫"
件 308260 如何疑難排解在 Windows 2000 為基礎,Windows xp,Windows Server 2003 為主,或 Windows vista 的電腦上與 Internet Explorer 7 的 Internet Explorer 6 中的指令碼錯誤
267572 WD2000 ︰ 錯誤訊息: 「 執行階段錯誤 5 」 當您啟動 Word 時
170409 SBFM97 ︰ 匯入 Quickbooks 資料的 MS Visual C++ 執行階段錯誤
309299 當您瀏覽至某些網頁的執行階段錯誤
8.00 8.00 9.00 c

警告:本文為自動翻譯

內容

文章識別碼:125749 - 最後檢閱時間:05/21/2016 17:51:00 - 修訂: 9.0

Microsoft Visual C++ 2008 Express Edition, Microsoft Visual C++ 2005 Express Edition, Microsoft Visual C++ .NET 2003 Standard Edition, Microsoft Visual C++ .NET 2002 Standard Edition, Microsoft Visual C++ 5.0 Professional Edition, Microsoft Visual C++ 5.0 Enterprise Edition, Microsoft Visual C++ 2.0 Professional Edition, Microsoft Visual C++ 1.5 Professional Edition

  • kbresolve kbtshoot kbcompiler kbcpponly kberrmsg kbprb kbmt KB125749 KbMtzh
意見反應