Iniciar sessão com a Microsoft
Iniciar sessão ou criar uma conta.
Olá,
Selecione uma conta diferente.
Tem várias contas
Selecione a conta com a qual pretende iniciar sessão.

Informações de Suporte Internas da Microsoft

BUGS #: 101959 (Visual Studio)

Resumo

Quando cria uma DLL utilizando a versão de 64 bits do compilador do Microsoft Visual C++ e Linker, poderá receber Ligador de LNK4197 do número de erro se uma função tenha sido declarada para exportação mais do que uma vez.

Sintomas

A saída de Linker poderá ser semelhante à seguinte:

C:\>link /NOLOGO /def:Sample.def /pdb:Sample.pdb /out:Sample.dll  Sample.objSample.obj : warning LNK4197: export 'DllSample' specified multiple times; using first specification   Creating library Sample.lib and object Sample.exp 

Causa

Ligador de número de erro LNK4197 é gerado quando uma função tenha sido declarada para exportação mais do que uma vez. Uma função é declarada para exportação de uma das seguintes formas:

  • A função é declarada utilizando a palavra-chave __declspec(dllexport) no ficheiro de origem de C:

    __declspec(dllexport) int DllSample() {   return 42;}
  • A função é declarada utilizando uma definição de módulo (. Ficheiro DEF):

    EXPORTS   DllSample

Este erro Linker poderá ocorrer com maior frequência quando tanto a __declspec(dllexport) palavra-chave e um. Ficheiro de definição são utilizadas para definir o mesmo nome de função numa. Projecto DLL.

Resolução

Para resolver este comportamento, definir funções exportadas apenas uma vez, utilizando a palavra-chave __declspec(dllexport) ou utilizando um. Ficheiro DEF. Não utilize ambos os métodos.

Estado

Este comportamento ocorre por predefinição.

Mais Informações

Declarar uma função de exportação mais do que uma vez poderão não produzir o erro Linker descrito na secção "Sintomas" deste artigo em versões de 32 bits do compilador C++ do Microsoft Windows e Linker. No entanto, a Microsoft recomenda que defina as exportações de função apenas uma vez nas versões de 32 bits e 64 bits do compilador C++ de Windows e Linker.

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.

Estas informações foram úteis?

Quão satisfeito está com a qualidade do idioma?
O que afetou a sua experiência?
Ao selecionar submeter, o seu feedback será utilizado para melhorar os produtos e serviços da Microsoft. O seu administrador de TI poderá recolher estes dados. Declaração de Privacidade.

Obrigado pelo seu feedback!

×