Lancer un exe dans une boite de dialogue

Résolu
todovski -  
 farehnasreddine -
Bonjour,

Je souhaite exécuter un programme en mode console dans une boite de dialogue
J'ai vu que l'on pouvait utiliser la commande system() mais je n'arrive pas à l'utiliser correctement.
J'ai rentré la commande suivante:

system("C:\Users\Boune\Documents\cours M2\Projet\JPEG2000\jasper\jasper-1.900.1\src\msvc\Win32_Debug\jasper --input feep.pnm --output toto1.jp2 --output-format jp2")

jasper --input feep.pnm --output toto1.jp2 --output-format jp2 : corresponds aux parametres que je dois rentrer pour exécuter le programme.

Normalement en exécutant cette ligne une image toto1.jp2 doit être créer mais la sa ne marche pas
Pourriez vous m'aider?
Configuration: Windows Vista
Firefox 3.0.6

5 réponses

  1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    remove(const char*)
    dans stdio.h ou stdlib.h ("man remove" pour en savoir plus)
    Si tes boîtes sont dans un même processus, il y a plus simple que de passer par un fichier.
    1
    1. farehnasreddine
       
      bonjour,
      je tape :

      cd C:\Documents and Settings\Administrateur\Bureau\fareh\jasper-1.900.1.uuid\jasper-1.900.1.uuid\src\msvc\win32_debug

      puis
      jasper -f image.jpg -F image.jp2 -T jp2
      sortie:
      1_image.jp2(0k):vide
      2_error: JPEG encoder not available
      3 error : can not encode image


      y'a t'il des solutions pour resoudre ce probleme
      ?
      merci d'avance
      0
  2. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Oui, attention au "\" dans les chaines de caractères en C, car la backslash sert de caractère d'échappement, c'est à dire que le programme cherchera à interpréter la lettre qui suit comme une commande. il faut mettre "\\" si tu veux afficher le caractère donc system("c:\\Users\\...")
    0
    1. todovski
       
      Voila ce que j'ai rentré mais sa ne marche toujours pas

      system("C:\\Users\Boune\\Documents\\cours M2\\Projet\\JPEG2000\\jasper\\jasper-1.900.1\\src\\msvc\\Win32_Debug\\jasper --input feep.pnm --output t.jp2 --output-format jp2");
      0
  3. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    je ne sais pas si c'est ça, mais tu en a oublié un :
    system("C:\\Users\\Boune\\Documents\\cours M2\\Projet\\JPEG2000\\jasper\\jasper-1.900.1\\src\\msvc\\Win32_Debug\\jasper --input feep.pnm --output t.jp2 --output-format jp2");
    Sinon, récupère le code de retour de system et affiche le voir ce qu'il vaut.
    0
    1. todovski
       
      Re bonjour,

      Bon tu avais raison j'avais oublié un "/" maintenant fonctionne. Merci
      Par contre je voulais savoir si on pouvait inclure une variable dans les parametre system()?
      En fait je voudrais savoir si je pouvais avoir quelque chose qui ressemble à sa:

      system("C:\\lo\\jasper --input "ma_variable1" --output "ma_variable2" --output-format "variable3"");
      Merci d'avance
      0
  4. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Le prototype de system est system(const char *), donc ce qu tu veux faire n'est pas possible en C aussi facilement.
    Il faut créer une chaine de caractère (Vsys par exemple) la remplir et la passer à system() (system(Vsys)).
    Pour cela le plux simple est d'utiliser sprintf().
    Il serait plus facile de faire ce que tu veux faire avec un langage plus "évolué" genre python ou perl.
    0
    1. todovski
       
      le probleme c'est que je ne peut utiliser que du C++ car j'utilise des boites de dialogue.

      En fait je voudrais que l'on puisse choisir le nom d'une image que l'on veut compresser puis mettre ce nom dans la ligne de commande :

      system("C:\\lo\\jasper --NOM_IMAGE --output momo.jp2 --output-format jp2");
      Donc il faudrait que je creer une chaine de caractere?
      Je ne voit pas trop comment faire ?
      0
      1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331 > todovski
         
        Là, c'est les bases !!
        prends des cours, je ne vais pas tout t'expliquer ici.
        Mais si tu fait du C++, utilise la STL et std::string, c'est plus simple, ça permet la concaténation :
        std:: string c1,c2,c3;
        system((c1+c2+c3).c_str())
        0
      2. todovski > Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Bonjour,

        Bon j'ai reussi à lancer l'application.
        Merci
        Par contre j'ai encore un autre probleme, j'ai deux boites de dialogues, j'ai une variable dans ma premiere boite que je voudrais recuperer dans la deuxieme, le probleme c'est que lorsque je ferme la premiere boite pour repasser dans la deuxieme la variable repasse à zero.
        merci d'avance
        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Il n'y a pas assez de détails sur ton application pour que l'on puisse te répondre.
    Qu'appelle tu "boite de dialogue" ?
    0
    1. Todovski
       
      Bonjour,

      J'utilise des boites de dialogues avec les MFC, mais la probleme des variables est resolu, je les stockent dans un fichier .txt et je les recupere ensuite. Par contre je voudrais savoir si il exister une autre methode pour supprimer un fichier ici un .txt? Moi j'utilise la commande : system(del "nom fichier")
      Mais elle me convient pas.
      Cordialement,
      0