4
votes

Le débogage avec «Arguments de commande» dans Visual Studio ne fonctionne pas

VS ne fonctionne pas AVEC les "Arguments de commande" que j'ai transmis. Qu'est-ce que je ne fais pas correctement?

Essayer de travailler avec les "Arguments de commande" dans Visual Studio.
Je l'ai décomposé en un simple petit programme ConsoleApplication en C.

C:\Users\jack\source\repos\ConsoleApplication45\Debug>ConsoleApplication45.exe mom

argv:  ConsoleApplication45.exe mom

C:\Users\jack\source\repos\ConsoleApplication45\Debug>

J'ai ensuite défini les "Arguments de la commande": Projet: Propriétés: Débogage: "Arguments de la commande": maman

 enter image description here

J'ai appuyé sur le bouton RUN et ceci s'affiche (mon argument n'est pas passé):

argv:  C:\Users\jack\source\repos\ConsoleApplication45\Debug\ConsoleApplication45.exe

C:\Users\jack\source\repos\ConsoleApplication45\Debug\ConsoleApplication45.exe (process 1812) exited with code 0.
To automatically close the console when debugging stops, enable Tools->Options->Debugging->Automatically close the console when debugging stops.
Press any key to close this window . . .

Lorsque je lance à partir de la ligne de commande, j'obtiens (Fonctionne comme je le souhaite avec le paramètre passé dans: "mom"):

#include "pch.h"
#include <iostream>

int main(int argc, char *argv[])
{
  printf("\nargv: ");
  for (int i = 0; i < argc; i++)
  {
    printf(" %s", argv[i]);
  }
  printf("\n");
}

Merci pour le lien Jean-François Fabre:
Oui, j'ai dû passer à x64 à partir de x86.

 entrez la description de l'image ici


5 commentaires

en relation: social.msdn.microsoft.com/Forums/vstudio/en-US/...


votre cible est-elle vraiment 64 bits? le lien ci-dessus suggère de sélectionner "n'importe quel processeur" plutôt que x64.


Ça l'a fait Jean-François Fabre. Je vous remercie.


Le programme final est x64. Je n'ai pas l'habitude de passer des paramètres dans le débogueur. C'est nouveau pour moi.


@jdl, si heureux d'apprendre que votre problème est résolu, veuillez marquer la réponse de Jean-François Fabre comme réponse lorsque vous avez du temps libre, cela aidera les autres à le rechercher plus facilement, merci :)


3 Réponses :


2
votes

Comme expliqué dans https://social.msdn.microsoft.com/Forums/vstudio/en-US/4097114c-8678-46bb- ba3b-7a2da8514efc / visual-studio-2017-not-passant-command-line-arguments-to-the-application? forum = vsdebug , vous définissez les arguments uniquement pour la cible x64 lorsque vous devez les définir pour un autre processeur.

Il est possible que vous exécutiez x86 à la place, où les arguments sont vides.

La meilleure méthode consiste à les définir sur "N'importe quel processeur" car il est très peu probable qu'il soit différent en fonction de votre processeur cible.


0 commentaires

1
votes

Je pense que votre principal problème ici est une incompatibilité entre la configuration de la solution / les propriétés de débogage et la plate-forme sous laquelle vous déboguez / exécutez la solution.

Assurez-vous qu'ils sont alignés.

Exemple - cette configuration est pour Platform: x64

 entrez la description de l'image ici

Lorsque la solution est exécutée / déboguée, vous devez vous assurer que vous déboguez sur la même plate-forme:

 entrez la description de l'image ici

Si votre plate-forme n'est pas x64 , configurez et exécutez le projet sous Platform: x86 ou All Platforms comme suggéré.


0 commentaires

0
votes

Je pensais voir un problème similaire, mais j'ai réalisé que le problème venait du fonctionnement de la boîte de dialogue Pages de propriétés. Dans les versions précédentes de Visual Studio, la sélection d'un projet et un clic droit sur Propriétés ouvraient la boîte de dialogue avec la configuration définie sur la configuration active.

Avec Visual Studio 2017, ce n'est plus le cas et semble s'ouvrir avec la dernière configuration modifiée, ce qui est déroutant et pourrait amener quelqu'un à modifier le paramètre pour la mauvaise configuration, comme indiqué ci-dessus. Pas un bon changement ...


0 commentaires