Descrição do erro de tempo de execução R6025 no Visual C++

Traduções deste artigo Traduções deste artigo
ID do artigo: 125749 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo descreve um problema que pode ocorrer quando você estiver desenvolvendo um programa. Se você ainda estiver tendo um problema semelhante ao descrito neste artigo, pode ser um problema diferente. Para procurar problemas relacionados a um problema específico, inclua o nome do produto em sua pesquisa para restringir os resultados. Para solucionar problemas semelhantes, consulte a seção "problemas semelhantes e resoluções" deste artigo.

Sintomas

O programa de C++ falha e relata o seguinte tempo de execução Erro:
Erro de tempo de execução R6025
-função virtual pura chamada

Causa

Este erro ocorre quando o aplicativo chama indiretamente uma função de membro virtual puro em um contexto onde uma chamada para a função não é válido. Na maioria dos casos, o compilador detecta isso e relatórios de erro quando Criando o aplicativo. Mas, dependendo de como seu código é escrito, às vezes o problema é detectado apenas em tempo de execução.

O erro ocorre quando você indiretamente chamar uma função virtual pura no contexto de uma chamada para o construtor ou destrutor de uma classe base abstrata. Isso é ilustrado na código de exemplo abaixo, com alguns descrição mais.

Resolução

Chamar uma função virtual pura é um erro de programação tão Você precisa localizar a chamada de função virtual pura e reescrever o código então não é chamado.

Uma maneira de localizar uma chamada para uma função virtual pura é substituir a função virtual pura uma implementação chama a Função de API do Windows DebugBreak. Ao usar o depurador, DebugBreak será causa uma interrupção codificados. Quando o código parar a execução no ponto de interrupção, Você pode exibir a pilha de chamadas para ver onde a função foi chamada.

Outra maneira de localizar uma chamada para uma função virtual pura é definir um ponto de interrupção na função _purecall que é encontrada em PureVirt.c. Mais recentes sobre esta função tem a vantagem de manter a pilha intacto para que você pode rastrear o que está ocorrendo.

Situação

Este comportamento é Design.

Mais Informações

Para obter mais informações, consulte o R6002 erros de tempo de execução"C através de R6025 "página a seção "Criar erros" em o seguinte site da Microsoft Developer Network (MSDN):
. aspx http://msdn2.microsoft.com/en-us/library/aa277044 (VS.60)
Observação O erro R6025 não está documentado na Ajuda online incluída ou manuais com o Visual C++, versões 2. x ou abaixo. No entanto, é brevemente discutido em Parte 3 do arquivo readme. wri fornecido com o Visual C++ versão 2.0.

Código de exemplo

   /* 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()
   {
   }
				

Problemas semelhantes e resoluções

Se você ainda estiver tendo um problema semelhante o problema descrito neste artigo, pode ser um problema diferente. Para obter mais informações sobre problemas semelhantes e resoluções, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
240437Erro de tempo de execução do Money: "R6025-Pure virtual function call"
308260 Como solucionar erros de script no Internet Explorer 6 e Internet Explorer 7 em computadores baseados no Windows 2000, baseado no Windows XP, baseado no Windows Server 2003 ou baseado no Windows Vista
267572 WD2000: Mensagem de erro: "Erro de tempo de execução '5'" quando inicia o Word
170409 SBFM97: Erros de tempo de execução de MS Visual C++ importação de dados do Quickbooks
309299 Erro de tempo de execução quando você navegar em algumas páginas da Web

Propriedades

ID do artigo: 125749 - Última revisão: quinta-feira, 5 de julho de 2012 - Revisão: 10.0
A informação contida neste artigo aplica-se a:
  • 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
Palavras-chave: 
kbresolve kbtshoot kbcompiler kbcpponly kberrmsg kbprb kbmt KB125749 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 125749

Submeter comentários

 

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