Je suis totalement perdu avec ça! Je travaille sur un projet de console C ++ et j'essaye de passer un texte "Command File" (dans le même emplacement du fichier de débogage) au débogueur via la fenêtre Command Arguments. Le projet de console se compile correctement et exécutera sans problème les éléments suivants lorsqu'il est saisi manuellement dans la console elle-même:
"FICHIER DE COMMANDES = PLOT.CON"
J'ai essayé d'autres commandes avec et sans guillemets et rien ne fonctionne. J'ai défini la ligne de commande dans les pages de propriétés:
J'obtiens juste l'erreur suivante lorsque j'exécute le débogueur:
Paramètre de ligne de commande non défini (C)
Une aide s'il vous plaît?
3 Réponses :
Compilez-vous et exécutez-vous dans Debug? Il est facile, avec Visual Studio, pour la fenêtre Propriétés de se désynchroniser avec votre configuration active. En cas de doute, réglez la "Configuration" sur "Actif" ou "Tout".
À défaut, pourriez-vous publier le code que vous utilisez pour analyser la ligne de commande et imprimer le message d'erreur?
Salut Charles / EvilTeach et merci pour vos réponses. Le projet sur lequel je travaille contient beaucoup de code hérité et cela, associé aux problèmes que j'ai concernant la configuration de VS2019 et diverses bibliothèques, etc. signifie qu'il n'est pas vraiment juste pour moi de continuer avec ce post: je dois revenir en arrière et regardez beaucoup de choses. Merci pour vos réponses, mais je ne pense pas qu'il soit juste pour quiconque de persister avec ce problème sans beaucoup plus de travail de ma part pour rendre les choses plus claires. Je souhaite conclure ceci pour l'instant! Salut Paul
J'ai peut-être une partie de votre réponse. J'ai appris le C ++ et écrit des programmes de ligne de commande pour le faire. J'ai découvert il y a quelque temps que la possibilité de fournir des arguments de ligne de commande lors du débogage ne semble pas fonctionner. Plus précisément, les bonnes choses ne se retrouvent pas dans argc et argv []. J'ai également constaté que le répertoire actuel de l'exécutable de débogage en cours d'exécution n'est pas l'endroit où l'exécutable se trouve. J'ai écrit une fonction appelée setupArgs pour résoudre le problème. Cela ressemble à ceci:
void setupArgs (int argc, char ** argv) {argcc = argc; pour (int x = 0; xAilleurs dans le code, argcc est défini comme un int et argvv est défini comme un std :: vector <std :: string>.
Comme vous pouvez le voir, il copie les éléments habituels d'argc et d'argv [] dans de nouvelles variables que le programme principal analyse ensuite à la place. Pour déboguer, vous décommentez les éléments en bas pour alimenter de faux arguments et changer le répertoire de travail. HTH,
Lars
Il serait utile que vous publiiez le code.