Zusammenfassung

Beim Erstellen einer DLL mit der 64-Bit-Version von Microsoft Visual C++-Compiler und Linker möglicherweise Linker Fehlernummer LNK4197 eine Funktion für den Export mehrmals deklariert wurde.

Problembeschreibung

Die Linker-Ausgabe möglicherweise ähnlich der folgenden:

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 

Ursache

Der Linker die Fehlernummer LNK4197 wird generiert, wenn eine Funktion für den Export mehrmals deklariert wurde. Eine Funktion wird für den Export in eine der folgenden Arten deklariert:

  • Die Funktion wird mit __declspec(dllexport) -Schlüsselwort in der C-Quelldatei deklariert:

    __declspec(dllexport) int DllSample() {   return 42;}
  • Die Funktion wird mit einer Moduldefinition deklariert (. DEF)-Datei:

    EXPORTS   DllSample

Dieser Linkerfehler kann häufig auftreten, wenn sowohl das __declspec(dllexport) -Schlüsselwort und. DEF-Datei wird in denselben Funktionsnamen definiert ein. DLL-Projekt.

Fehlerbehebung

Um dieses Verhalten zu beheben, definieren Sie exportierte Funktionen nur einmal das __declspec(dllexport) -Schlüsselwort verwenden oder mithilfe einer. DEF-Datei. Verwenden Sie nicht beide Methoden.

Status

Es handelt sich hierbei um ein beabsichtigtes Verhalten.

Weitere Informationen

Eine Funktion für den Export nur einmal deklarieren kann nicht im Abschnitt "Symptome" dieses Artikels in 32-Bit-Versionen von Microsoft Windows C++ Compiler und Linker beschrieben die Linkerfehler führen. Microsoft empfiehlt jedoch 32-Bit- und 64-Bit-Versionen von Windows C++ Compiler und Linker Funktion exportiert nur einmal definieren.

Benötigen Sie weitere Hilfe?

Ihre Office-Fähigkeiten erweitern
Schulungen erkunden
Neue Funktionen als Erster erhalten
Microsoft Insider beitreten

War diese Information hilfreich?

Wie zufrieden sind Sie mit der Übersetzungsqualität?
Was hat Ihre Erfahrung beeinflusst?

Vielen Dank für Ihr Feedback!

×