2016-09-28 1 views
0

Je ne peux pas créer un projet VC++ ciblant Windows 8.1 dans une machine Windows 10. L'erreur que j'obtiens est "Symbole externe non résolu _sprintf". Je ne peux construire le projet que si j'ai changé la plate-forme cible pour Windows 10 ou si j'ai ajouté legacy_stdio_definitions.lib. Ce que je ne veux pas faire. Je peux construire ce projet avant sans le faire. Et mes collègues peuvent construire le même code dans leur machine. La question est, qu'est-ce qui me manque sur ma machine?Impossible de créer des projets C++ ciblant Windows 8.1 dans VS2015. Symbole externe non résolu _sprintf

J'ai déjà essayé de mettre à jour Visual Studio au plus tard. J'ai également essayé de réparer le studio visuel de Programmes et fonctionnalités.

Répondre

0

_sprintf est défini dans stdio.h. Si vous #include <stdio.h> vous pouvez alors l'utiliser. C'est une vieille fonction. Voir here pour plus d'informations concernant cette fonction et son utilisation. C++ a des versions de modèles des fonctions détaillées here. La fonction fait partie de la bibliothèque CRT depuis un certain temps. Vérifiez votre lien et assurez-vous que vous aimez le CRT qui l'a, et dans votre cas ce serait legacy_stdio_definitions.lib. Avant que vous ne changiez votre cible de construction, elle était probablement automatiquement liée au projet, et ce paramètre ne revenait pas lorsque vous revenez à la cible de génération. Votre problème est cependant avec les paramètres du projet, pas le studio visuel ou le compilateur lui-même.

+0

Le même code s'appuie sur une autre machine. Mon collègue peut le construire sur sa machine sans changer la plate-forme cible ou en ajoutant legacy_stdio_definitions.lib. – Lance

+0

probablement parce que sa machine est déjà liée à legacy_stdio_definitions.lib. Beaucoup de ces anciennes fonctions de chaînes sont obsolètes, c'est pourquoi elles ont été déplacées dans 'legacy_stdio_definitions.lib' – johnathon

+0

Maintenant, comment puis-je faire cela sur ma machine sans mettre à jour les projets? – Lance