64-bitové verzie Visual C++ kompilátor chyba LNK4197

Microsoft Internal Support Information

BUG #: 101959 (Visual Studio)

Súhrn

Pri vytváraní knižnice DLL v 64-bitovej verzii programu Microsoft Visual C++ kompilátor a Linker, dostanete Linker chyby číslo LNK4197 Ak funkcie pre export viac ako raz.

Príznaky

Linker výstupu možno podobný nasledujúcemu:

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 

Príčina

Linker číslo chyby LNK4197 vzniká, ak funkcia je prihlásené na export viac ako raz. Funkcia za vývoz jedným z nasledujúcich spôsobov:

  • Funkcia za pomocou kľúčových slov __declspec(dllexport) C zdrojového súboru:

    __declspec(dllexport) int DllSample() {   return 42;}
  • Funkcia za pomocou modulu rozlíšením (. Súbor definition):

    EXPORTS   DllSample

Táto chyba Linker najčastejšie dochádza pri __declspec(dllexport) slovo a. Definition súbor používa definovať rovnakým názvom funkcie. DLL projektu.

Riešenie

Tento problém vyriešite definovať funkciách iba raz pomocou __declspec(dllexport) kľúčových slov alebo pomocou. Definition súbor. Nepoužívajte obidve nasledujúce metódy.

Stav

Toto správanie je zámerné.

Ďalšie informácie

Vyhlásenie funkciu exportu viackrát nemusí vyvolať Linker chyby, ktorý je popísaný v časti "Príznaky" tohto článku 32-bitové verzie systému Microsoft Windows C++ kompilátor a Linker. Spoločnosť Microsoft však odporúča definovať funkciu vývoz len raz, v 32-bitové a 64-bitové verzie systému Windows C++ kompilátor a Linker.

Potrebujete ďalšiu pomoc?

Rozšírte svoje zručnosti
Preskúmať školenie
Buďte medzi prvými, ktorí získajú nové funkcie
Pripojiť k Microsoft insiderov chcú

Považujete poskytnuté informácie za užitočné?

Ďakujem za vaše pripomienky!

Ďakujeme vám za pripomienky. Pravdepodobne vám pomôže, ak vás spojíme s pracovníkom podpory pre Office.

×