Passage de paramètre pour un .exe

cs_pierrot33 Messages postés 7 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 10 juin 2003 - 10 juin 2003 à 09:07
cs_pierrot33 Messages postés 7 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 10 juin 2003 - 10 juin 2003 à 13:22
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,
A voir également:

4 réponses

theneoiceman Messages postés 78 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 23 avril 2010
10 juin 2003 à 09:34
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
0
cs_pierrot33 Messages postés 7 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 10 juin 2003
10 juin 2003 à 10:44
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.
0
theneoiceman Messages postés 78 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 23 avril 2010
10 juin 2003 à 12:21
-------------------------------
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.
@+
0
cs_pierrot33 Messages postés 7 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 10 juin 2003
10 juin 2003 à 13:22
Merci bien, j'essaye.
@+,
Pierrot.
0
Rejoignez-nous