Partager via


Corps de fonction ou variable manquant

Avec un prototype de fonction, le compilateur peut continuer sans erreur, mais l’éditeur de liens ne peut pas résoudre un appel à une adresse, car il n’existe aucun code de fonction ni espace variable réservé. Cette erreur ne s’affiche pas tant que vous n’avez pas créé d’appel à la fonction que l’éditeur de liens doit résoudre.

Exemple : Appeler une fonction non définie

L’appel de fonction en principal entraîne LNK2019, car le prototype permet au compilateur de penser que la fonction existe. L’éditeur de liens trouve qu’il ne le fait pas.

// LNK2019_MFBV.cpp
// LNK2019 expected
void DoSomething(void);
int main() {
   DoSomething();
}

Exemple : Appeler une fonction implémentée

En C++, assurez-vous d’inclure l’implémentation d’une fonction spécifique pour une classe et pas seulement un prototype dans la définition de classe. Si vous définissez la classe en dehors du fichier d’en-tête, veillez à inclure le nom de la classe avant la fonction (Classname::memberfunction).

// LNK2019_MFBV_2.cpp
// LNK2019 expected
struct A {
   static void Test();
};

// Should be void A::Test() {}
void Test() {}

int main() {
   A AObject;
   AObject.Test();
}

Voir aussi

Erreur des outils Éditeur de liens LNK2019