Freigeben über


Linkertoolwarnung LNK4217

Lokal definiertes Symbol 'Symbol' wurde in Funktion 'Funktion' importiert

__declspec(dllimport) wurde für ein Symbol angegeben, obwohl das Symbol lokal definiert ist. Entfernen Sie den __declspec-Modifizierer, um diese Warnung zu vermeiden.

symbolentspricht dem im Bild definierten Symbolnamen. function steht für die Funktion, durch die das Symbol importiert wird.

Diese Warnung wird nicht angezeigt, wenn Sie zum Kompilieren die Option /clr verwenden

LNK4217 kann auch bei dem Versuch auftreten, zwei Module miteinander zu verknüpfen, wenn stattdessen das zweite Modul mit der Importbibliothek des ersten Moduls kompiliert werden sollte.

// LNK4217.cpp
// compile with: /LD
#include "windows.h"
__declspec(dllexport) void func(unsigned short*) {}

und anschließend

// LNK4217b.cpp
// compile with: /c
#include "windows.h"
__declspec(dllexport) void func(unsigned short*) {}

Der Versuch, diese beiden Module miteinander zu verknüpfen, führt zur Warnmeldung LNK4217. Kompilieren Sie stattdessen das zweite Beispiel mit der Importbibliothek des ersten Beispiels.