Você está offline; aguardando reconexão

Você receber uma mensagem de erro C2039 ou C2653 ao tentar fazer referência a uma função da biblioteca C++ DESVPAD

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: 243444
Sintomas
Tentativa de fazer referência a uma função do cabeçalho da biblioteca C++ DESVPAD <cstdlib> usando o namespace DESVPAD (por exemplo, std::exit(0)) faz com que o compilador emitir um C2653 ou um C2039 (dependendo se ou não o namespace "DESVPAD" é definido no ponto de onde o erro é emitido).
Causa
<cstdlib> não define o namespace "DESVPAD". Isso é contrário da VC ++ documentação, que diz:
"Incluir o cabeçalho padrão <cstdlib> para incluir o cabeçalho padrão <stdlib.h> dentro do namespace std efetivamente".
Resolução
Para contornar o problema, coloque o "# include <cstdlib>" no namespace "DESVPAD".
Situação
A Microsoft confirmou que esse é um problema nos produtos da Microsoft listados na seção "Aplica-se a".
Mais Informações
Tentativa de compilar a seguir fará com que o compilador exibir o seguinte erro:
"Erro C2653: 'std': não é um nome de classe ou namespace"
// Compile Options:  /GX#include <cstdlib>void main(){     std::exit(0);}				
No entanto, a tentativa de compilar a seguir faz com que o compilador exibir o seguinte erro:
"erro C2039: 'exit': não é um membro de 'std'"
// Compile Options:  /GX#include <vector>#include <cstdlib>void main(){     std::exit(0);}				

No primeiro caso, o C2653 é exibida, porque o namespace "DESVPAD" não foi definido. No segundo caso, o C2039 é exibida, porque o namespace "DESVPAD" tiver sido definido (no cabeçalho da <vector>), mas a função Exit não é parte do namespace. Para contornar o problema em ambos os casos, simplesmente coloque o "# include <cstdlib>" no namespace "DESVPAD", da seguinte maneira:
// Compile Options:  /GXnamespace std {#include <cstdlib>};void main(){     std::exit(0);}				

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 243444 - Última Revisão: 05/26/2005 23:29:59 - Revisão: 3.0

Microsoft Visual C++ 6.0 Enterprise Edition, Microsoft Visual C++ 6.0 Professional Edition, Microsoft Visual C++, 32-bit Learning Edition 6.0

  • kbmt kberrmsg kbtshoot kbbug kbcompiler kbcpponly kbpending KB243444 KbMtpt
Comentários
" no namespace..." />
" no namespace..." />
r m=document.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">