Partilhar via


Compilador erro C2065

Mensagem de erro

'identificador': identificador não declarada

Tipo de variável deve ser especificado em uma declaração antes que ele pode ser usado.Os parâmetros que usa uma função devem ser especificados em uma declaração ou protótipo, antes que a função possa ser usada.

Possíveis causas:

  1. Você está compilando com uma versão de depurar do tempo de execução C, declarando uma variável do iterador biblioteca C++ padrão em um for loop e tente usar a variável do iterador fora do escopo a for loop. Compilar o código da biblioteca C++ padrão com uma versão de depurar de C tempo de execução implica /Zc:forScope.See Suporte de iterador de depurar para obter mais informações.

  2. Você pode chamar uma função em um arquivo de cabeçalho do SDK não é suportado atualmente no seu ambiente de compilação.

  3. Omitindo necessário incluir arquivos, especialmente se você definir VC_EXTRALEAN, WIN32_LEAN_AND_MEAN, or WIN32_EXTRA_LEAN.Esses símbolos excluir alguns arquivos de cabeçalho de windows.h e compila afxv_w32.h para aumentar a velocidade.(Consulte do windows.h e afxv_w32.h para uma descrição atualizada da que foi excluído.)

  4. O nome do identificador está incorreto.

  5. Identificador usa as letras maiúsculas e em minúsculas erradas.

  6. Faltando aspas de fechamento após uma constante de seqüência de caracteres.

  7. Escopo do espaço para nome incorreto.Para resolver ANSI C++ Standard biblioteca funções e operadores, por exemplo, você deve especificar o std namespace com o using diretiva. O exemplo a seguir tenta compilar porque o using diretiva é comentada e cout é definido na std namespace:

Exemplo

O exemplo a seguir gera C2065.

// C2065.cpp
// compile with: /EHsc
// using namespace std;
#include <iostream>
int main() {
   cout << "Hello" << endl;   // C2065

   // try the following line instead
   std::cout << "Hello" << std::endl;
}

Ao chamar uma função genérica, se o argumento do tipo desejado não pode ser deduzido dos parâmetros usados, o compilador relatará um erro.Para obter mais informações, consulte Funções Genérico.

O exemplo a seguir gera C2065.

// C2065_b.cpp
// compile with: /clr
generic <typename ItemType>
void G(int i) {}

int main() {
   // global generic function call
   G<T>(10);   // C2065
   G<int>(10);   // OK
}

Este erro também pode ser gerado sistema autônomo resultado do compilador conformidade trabalho foi realizado em Visual C++ 2005: parâmetro de verificação de atributos do Visual C++.Consulte Quebrar alterações no compilador de 2005 Visual C++ para obter mais informações.

O exemplo a seguir gera C2065.

// C2065_c.cpp
// compile with: /c
[module(DLL, name=MyLibrary)];   // C2065
// try the following line instead
// [module(dll, name="MyLibrary")];

[export]
struct MyStruct {
   int i;
};