Passage de paramètre pour un .exe

Signaler
Messages postés
7
Date d'inscription
mardi 13 mai 2003
Statut
Membre
Dernière intervention
10 juin 2003
-
Messages postés
7
Date d'inscription
mardi 13 mai 2003
Statut
Membre
Dernière intervention
10 juin 2003
-
Bonjour à tous,

Débutant en C++, j'ai dévellopper une petite application et j'aimerais maintenant l'apppeller en lui passant 3 variables de type char en paramètre. Est ce que c'est réalisable avec un .exe et si oui comment faire (je n'en ai aucune idée).

Merci pour votre aide.
Pierrot,

4 réponses

Messages postés
78
Date d'inscription
lundi 14 avril 2003
Statut
Membre
Dernière intervention
23 avril 2010

si tu veux passer tes variables en argument pour ton executable il suffit de remplacer ta foncion "main" de cette façon :
int main(int argc, char **argv)
{
...
if (argc != 4 ) // cas ou tu n'as pas trois paramètres a ta fonction
{
exit(1);
}

// ici ton programme
}

argc représente le nombre de paramètres passés avec ton programme (attention le nom de l'executable est compté comme un paramètre)

argv est un tableau de (char*) contenant les valeurs des différents paramètres.
Par exemple dans le cas ou argc==2 :
argv[0] = nom de l'executable
argv[1] = premier paramètre passé a coté de cet executable

Avec ca tu devrais t'en sortir sans probleme.

Une dernière remarque :
si un de tes arguments est un mot composé genre "truc machin", si tu veux qu'il soit considéré comme étant un seul argument met ca entre guillemets...
Voila Bonne prog
Messages postés
7
Date d'inscription
mardi 13 mai 2003
Statut
Membre
Dernière intervention
10 juin 2003

Je te remercie beaucoup pour ses infos, en effet je devrais m'en sortir, mais juste une dernière question. Je programme sous visual C++ , ors sous Visual C++ je n'est pas de fonction "main" comment faire alors?
Merci de ton aide.
Messages postés
78
Date d'inscription
lundi 14 avril 2003
Statut
Membre
Dernière intervention
23 avril 2010

-------------------------------
Réponse au message :
-------------------------------

> Je te remercie beaucoup pour ses infos, en effet je devrais m'en sortir, mais juste une dernière question. Je programme sous visual C++ , ors sous Visual C++ je n'est pas de fonction "main" comment faire alors?
> Merci de ton aide.
>

Pour récupérer les arguments que tu tapes en programmation Windows c'est un peu plus compliqué...

La fonction que tu dois utiliser est bien WinMain.
Utilise la fonction suivante telle qu'elle est écrite :
int argc=1;
LPSTR *argv;
LPSTR lignedecommande=GetCommandLine();
argv = CommandLineToArgvW(lignedecommande,&argc);

Avecc ca tu devrais récupérer les données de ta ligne de commande.
Ensuite tu n'as plsu qu'à refaire :
if (argc != 4) {...}
...
etc.

Il y peut être des cast à faire pour les types de variable mais faut essayer cette méthode. Moi meme je n'ai pas encore utilisé cette méthode mais ca vaut le coup d'essayer.
Voila.
@+
Messages postés
7
Date d'inscription
mardi 13 mai 2003
Statut
Membre
Dernière intervention
10 juin 2003

Merci bien, j'essaye.
@+,
Pierrot.