IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Lancer un executable avec des param�tres


Sujet :

C++

  1. #1
    Candidat au Club
    Homme Profil pro
    �tudiant
    Inscrit en
    Avril 2015
    Messages
    2
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 30
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 2
    Par d�faut Lancer un executable avec des param�tres
    Bonjour,

    J'ai un probl�me que je n'arrive pas � r�soudre. J'ai deux programme C++ tout b�te. Dans le premier programme, j'aimerais appel� le deuxi�me programme avec des param�tres, o� le deuxi�me programme pourrait justement r�cup�rer ces param�tres et les traiter.
    Dans le premier programme, j'appelle le second comme ca :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    CString chemin = "Coucou";
    system ("\"C:\\exe\\test\\App2.exe\" " + parametre);
    Dans la deuxi�me application, je recupere comme ca dans le _tmain:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    CString paramètre = argv[0];
    Bon, je me m�lange peut-�tre les pinceaux, et je dois faire justement quelque chose de mal, mais quoi ? J'ai chercher sur internet, et ca parlait de "CreateProcess()" mais ca me par�it quand m�me beaucoup plus compliqu�.

    PS : Je travaille sous Visual Studio 2010, et mes 2 "App" sont des Win32 console application, donc tout ce qui est de plus basique.

    Merci

  2. #2
    Expert �minent

    Femme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par d�faut
    system() fait exactement ce que ferait la m�me chaine de caract�re tapp�e dans une console.

    int main(int argc, char** argv) est la signature de main que tu dois utiliser.

    Pour utiliser les arguments de lignes de commande, on regarde les diff�rentes valeurs plac�es dans argv.
    Ce tableau de chaines poss�de deux propri�t�s sp�ciales:
    • argv[0] est le nom de la commande ayant servi � lancer le programme.
    • argv[argc] = null

  3. #3
    Candidat au Club
    Homme Profil pro
    �tudiant
    Inscrit en
    Avril 2015
    Messages
    2
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 30
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 2
    Par d�faut
    Ok j'arrive � detecter un param�tre, mais quand j'en met plusieurs, ba les autres param�tres, mon programme ne les detectend pas .
    J'ai ca :
    App1
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    int nombre = 1;
    CString parametre1 = "Coucou";
    CString parametre2;
    fixation.Format("%d", nombre);
    system ("\"C:\\exe\\test\\App2.exe\" " + parametre1 + " " + parametre2);
    et pour l'App2
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    int main(int argc, char** argv)
    {
    	CString param1 = argv[1];
    	int param2 = (int) argv[2];
            //Traitement ...
    Quand il n'y a qu'un seul param�tre, tout tourne normalement. Mais lorsque j'en met un deuxi�me, ba le traitement de la deuxi�me App ne s'arrete pas (j'utiliser le parametre2 pour une boucle). Est-ce bien comme ca qu'il faut faire pour mettre plusieurs param�tres ?

    Et j'ai une autre question, mais je pense que je connais le r�ponse . Est ce que on peut mettre en param�tre des objets dans la fonction system() ? (comme par exemple un array). Si non, ya t-il une autre m�thode que system pour pouvoir justement �changer des objets ?

    Merci

  4. #4
    Expert confirm�

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Software Developer
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par d�faut
    Plutot que system, je te conseille de regarder du c�t� de execv si tu es sous Linux, et CreateProcess sous Windows qui te permettront de g�rer tes param�tres correctement.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert � rien, mais qu'il est joli (des fois) : ProceduralGenerator (G�n�ration proc�durale d'images, et post-processing).

Discussions similaires

  1. R�ponses: 3
    Dernier message: 17/04/2008, 15h01
  2. R�ponses: 4
    Dernier message: 21/11/2007, 18h21
  3. excel+mysql : execut� des requetes avec des param�tres
    Par overider dans le forum Macros et VBA Excel
    R�ponses: 1
    Dernier message: 18/09/2007, 21h03
  4. R�ponses: 4
    Dernier message: 23/03/2005, 17h49
  5. cr�er un noeuds avec des param�tres
    Par Toxine77 dans le forum XMLRAD
    R�ponses: 5
    Dernier message: 21/01/2003, 16h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo