在 Visual c + + R6025 运行时错误的说明

文章翻译 文章翻译
文章编号: 125749 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

本文讨论了您开发的程序时可能出现的问题。如果您仍然遇到类似于本文描述的问题,它可能是一个不同的问题。要搜索的具体问题相关的问题,请包括产品名称在搜索中以缩小搜索范围。要解决类似的问题,请参阅本文中稍后介绍的"类似的问题和解决方法"部分。

症状

C + + 程序失败,并报告以下运行时错误:
运行时错误 R6025
-纯虚函数调用

原因

间接调用您的应用程序时,会发生此错误在上下文中调用该函数不是纯虚成员函数有效。在大多数情况下,编译器检测到主页并报告错误时生成应用程序。但这取决于如何编写代码,有时仅在运行时检测到问题。

发生错误时您间接调用纯虚函数调用的上下文中构造函数或析构函数的抽象基类。这中所示示例如下代码,以及一些详细的说明。

解决方案

调用纯虚函数是一个编程错误因此您需要查找对纯虚函数的调用,因此重写代码它将不会调用。

若要查找纯虚函数调用的一种方法用来替换纯虚函数调用的实施方案Windows API 函数DebugBreak。当使用调试器时,将DebugBreak导致硬编码的断点。当代码停止此断点,在运行时您可以查看要查看其中调用该函数的调用堆栈。

查找纯虚函数调用另一个方法是在 PureVirt.c 中找到_purecall函数上设置断点。有关该函数的重大具有保持堆栈不变,以便您可以跟踪所发生情况的优势。

状态

此行为是设计。

更多信息

有关详细信息,请参阅"C 运行时错误 R6002R6025 通过"页"生成错误"部分的在中下面的 Microsoft 开发人员网络 (MSDN) 的网站:
http://msdn2.microsoft.com/en-us/library/aa277044 (VS.60).aspx
注意R6025 错误未记录中的手册或联机帮助Visual c + +,版本 2.x 或下方。但是,简要讨论中随 Visual c + + 2.0 版的 Readme.wri 文件的第 3 部分。

示例代码

   /* 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: MS Visual c + + 运行时错误 Quickbooks 数据导入
309299 当您浏览到某些 Web 页的运行时错误

属性

文章编号: 125749 - 最后修改: 2012年7月4日 - 修订: 10.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 标准版
  • Microsoft Visual C++ 5.0 专业版
  • Microsoft Visual C++ 5.0 企业版
  • Microsoft Visual C++ 2.0 Professional Edition
  • Microsoft Visual C++ 1.5 专业版
关键字:?
kbresolve kbtshoot kbcompiler kbcpponly kberrmsg kbprb kbmt KB125749 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 125749
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com