Microsofts interne støtteinformasjon

Feil #: 101959 (Visual Studio)

Sammendrag

Når du bygger en DLL-fil ved hjelp av 64-biters versjonen av Microsoft Visual C++ kompilatoren og Linker, kan du få Linker feilnummer LNK4197 Hvis en funksjon er deklarert for eksport mer enn én gang.

Symptomer

Linker-utdata kan ligne på følgende:

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

Årsak

Linker feilnummer LNK4197 genereres når en funksjon er deklarert for eksport mer enn én gang. En funksjon er deklarert for eksport i én av følgende måter:

  • Funksjonen er Deklarer ved hjelp av __declspec(dllexport) -nøkkelordet i C-kildefilen:

    __declspec(dllexport) int DllSample() 
    {
    return 42;
    }
  • Funksjonen er Deklarer ved hjelp av en modul-definisjon (. DEF)-fil:

    EXPORTS
    DllSample

Denne Linker kan det oppstå feil oftest når begge nøkkelordet __declspec(dllexport) og en. DEF-filen brukes til å definere det samme funksjonsnavnet i en. DLL-prosjekt.

Løsning

Hvis du vil løse dette problemet, definere eksporterte funksjoner bare én gang ved hjelp av __declspec(dllexport) -nøkkelordet eller ved hjelp av en. DEF-filen. Ikke bruke begge disse metodene.

Status

Denne virkemåten er standard.

Hvis du vil ha mer informasjon

Deklarerer en funksjon for eksport mer enn én gang kan ikke gi Linker-feilen som er beskrevet i delen "Symptomer" i denne artikkelen i 32-biters versjoner av Microsoft Windows C++ kompilatoren og Linker. Microsoft anbefaler imidlertid at du definerer funksjonen Eksporter bare én gang i både 32-biters og 64-biters versjoner av Windows C++ kompilatoren og Linker.

Trenger du mer hjelp?

Utvid ferdighetene dine
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Microsoft Insiders

Var denne informasjonen nyttig?

Hvor fornøyd er du med kvaliteten på oversettelsen?
Hva påvirket opplevelsen din?

Takk for tilbakemeldingen!

×