Pour être honnête, je n'ai jamais été confronté à un tel problème avec Visual Studio. Votre CPP doit également être reconstruit s'il inclut l'en-tête. La seule raison pour laquelle je peux arriver: le même fichier d'inclusion provient de deux sources différentes.
Vous pouvez essayer de déboguer ceci au moment de la compilation, en permettant au préprocesseur de sortir les fichiers prétraités. Cliquez sur le fichier CPP aller aux propriétés, puis à C/C++ -> préprocesseur et sélectionnez dans "Générer un fichier prétraité" l'élément avec ou sans numéros de ligne.
Allez vous inclure fichier mis les pragmas autour de vos nouvelles définitions ajoutées comme:
#pragma starting_definition_X
...
#pragma ending_definition_X
Maintenant, tout compiler. Il y aura un fichier nouvellement créé avec le même nom que CPP mais avec l'extension .I (ou .i).
Faites une recherche si vos pragmas sont là. Sinon, votre inclusion vient d'un autre endroit.
Si vous utilisez des en-têtes précompilés, vous devez reconstruire cpp. Il y a aussi une déclaration pragma une fois dans MS VC, qui analyse le fichier include une seule fois, mais qui devrait quand même recompiler le fichier cpp.
Espoir qui aide,
Ovanes
Oui, la reconstruction complète le corrige mais prend environ 40 minutes. J'essaie d'obtenir des builds sans surveillance sur ma machine. – danio
@danio: Je me souviens d'avoir de tels problèmes. Dans ce cas, j'ai soit redémarré Visual Studio, soit fait la reconstruction. Pourquoi avez-vous tout reconstruire? Tu ne peux pas reconstruire le projet seulement? – ovanes
@ovanes Oui, reconstruire juste le problème des projets est plus rapide, mais les trouver peut prendre beaucoup de temps. Avoir à décrypter les erreurs de l'éditeur de liens pour déterminer quelles bibliothèques sont erronées, reconstruire chacune d'elles, puis reconstruire la solution et espérer les avoir toutes saisies. – danio