Você recebe uma mensagem de erro do compilador C2491 quando tenta definir os membros de dados como funções de dllimport

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: 815647
Sumário
Não é possível aplicar a palavra-chave __declspec(dllimport) para implementar uma função. Por exemplo, quando você tenta definir membros de dados (incluindo os membros de dados estáticos e funções) como dllimport funções, você recebe a seguinte mensagem de erro C2491 do compilador:
'identificador': definição de função dllimport não permitida
Mais Informações
Você só pode aplicar a palavra-chave __declspec(dllimport) para declarações. Não é possível aplicar a palavra-chave __declspec(dllimport) para implementar as funções. O objetivo dessa palavra-chave é declarar a implementação de uma função por uma DLL. Da mesma forma, se você aplicar a palavra-chave __declspec(dllimport) a um membro de dados, você recebe os dados iniciais de uma DLL. Portanto, você não pode atribuir um valor em seu código inicialmente.

Você receber a mensagem de erro C2491 do compilador quando você tenta compilar o código a seguir:
// function definitionvoid __declspec(dllimport) funcB() {   // error C2491: 'funcB' : definition of dllimport function not allowed}
esse comportamento ocorre porque você definiu a implementação de função como dllimport . Para evitar esse erro de compilador, não defina a função, mas em vez disso, declare a função da seguinte maneira:
// function declarationvoid __declspec(dllimport) funcB();    // okint main() {}
da mesma forma, você receber a mensagem de erro C2491 do compilador quando você tenta compilar o código a seguir:
//defining data memberextern __declspec(dllimport)  int code = 1; // error C2491: 'code' : definition of dllimport data not allowed
você recebe essa mensagem de erro porque você definiu o membro de dados como dllimport . Para evitar esse erro de compilador, não defina o membro de dados, mas em vez disso, declare o membro de dados da seguinte maneira:
// declaring data memberextern __declspec(dllimport)  int code;  // ok
Referências
Para obter mais informações, visite o seguinte site da Microsoft Developer Network (MSDN):

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 815647 - Última Revisão: 11/14/2007 06:26:28 - Revisão: 2.2

Microsoft Visual C++ 2005 Express Edition, Microsoft Visual C++ .NET 2003 Standard Edition, Microsoft Visual C++ .NET 2002 Standard Edition, Microsoft Visual C++ 6.0 Standard Edition

  • kbmt kbcompiler kbinfo KB815647 KbMtpt
Comentários