Interne ondersteuningsinformatie van Microsoft

BUG #: 101959 (Visual Studio)

Samenvatting

Wanneer u een DLL-bestand maken met behulp van de 64-bits versie van Microsoft Visual C++ Compiler en Linker, foutbericht Linker foutnummer LNK4197 als een functie voor het exporteren van meer dan één keer is gedeclareerd.

Symptomen

De uitvoer van de Linker kan worden met de volgende strekking:

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 

Oorzaak

De Linker foutnummer LNK4197 wordt gegenereerd wanneer een functie voor het exporteren van meer dan één keer is gedeclareerd. Een functie wordt gedeclareerd voor uitvoer in een van de volgende manieren:

  • De functie wordt gedeclareerd met het sleutelwoord __declspec(dllexport) in het bronbestand C:

    __declspec(dllexport) int DllSample() {   return 42;}
  • De functie wordt gedeclareerd met behulp van de definitie van een module (. DEF)-bestand:

    EXPORTS   DllSample

Deze Linker-fout treedt meestal wanneer beide trefwoorden van de __declspec(dllexport) en een. DEF-bestand worden gebruikt voor het definiëren van dezelfde functienaam in een. DLL-project.

Oplossing

U lost dit probleem, definiëren geëxporteerde functies slechts één keer met het sleutelwoord __declspec(dllexport) of met behulp van een. DEF-bestand. Beide methoden niet gebruiken.

Status

Dit gedrag is inherent aan het ontwerp van het product.

Meer informatie

Het declareren van een functie voor meer dan één keer uitvoer produceert de Linker-fout die wordt beschreven in de sectie 'Symptomen' van dit artikel in de 32-bits versies van Microsoft Windows C++ Compiler en Linker niet. Microsoft raadt echter aan dat uitvoer van de functie slechts één keer te in zowel 32-bits en 64-bits versies van de Windows C++ Compiler en de Linker definiëren.

Meer hulp nodig?

Uw vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Microsoft insiders

Was deze informatie nuttig?

Hoe tevreden bent u met de vertaalkwaliteit?
Wat heeft uw ervaring beïnvloed?

Bedankt voor uw feedback.

×