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 :

Affichage fenetre DOS lors execution programme


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2004
    Messages : 29
    Points : 13
    Points
    13
    Par défaut Affichage fenetre DOS lors execution programme
    Bonjour,

    Je developpe un logiciel avec visual C++ avec des interfaces graphique mais un mode ligne de commande egalement...

    J'ai créé un programme récupérant les arguments de la ligne de commande afin de pouvoir le lancer en batch.

    J'aimerais savoir comment afficher un texte dans l'invite de commande dos lors de l'exécution du programme pour informer l'utilisateur d'une erreur ou lui donner la liste des paramètres a entrer en ligne de commande s'il tape monprog.exe /help

    Je voudrais que mon programme ecrive dans la fenetre par laquelle on a lancé le programme.

    Quelqu'un aurait une piste?

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Utiliser la sortie standard (std::cout) ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2004
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    c'est ce que je fais.

    mais cela ne m'affiche rien...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 58
    Points : 66
    Points
    66
    Par défaut
    Tu utilises quelle version de visual studio? Parce que j'ai eu le même problème avec les MFC et Visual 6...
    Pour résoudre le problème, j'avais du utiliser la commande editbin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    editbin /SUBSYSTEM:CONSOLE mon_exe.exe

  5. #5
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Le /subsystem:console n'a pas besoin d'être appliqué après, on peut le spécifier directement des les options de compilations de MsDev.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 58
    Points : 66
    Points
    66
    Par défaut
    c'est possible, j'ai pas vérifié, mais d'après cet article:

    http://www.codeproject.com/cpp/EditBin.asp

    One last observation on the VS6 project settings...

    You may notice "/subsystem:windows" as appears in an MFC Wizard generated application under the Project Settings Link tab. Yet console output can't be obtained by simply changing this entry to /subsystem:console.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2004
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    merci a tous pour ces pistes et excusez moi de ne pas avoir repondu avant ^^

    je test ca tout de suite :-)

  8. #8
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 387
    Points : 301
    Points
    301
    Par défaut
    J'ai le même problème sur des fichiers, mais la solution la plus simple est d'ouvrir des fenêtres qui préviennent l'utilisateur d'éventuels problèmes (via MessageBox).
    Mais le faire par invite de commande, ca peut être intéressant, mais moins esthétique.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2004
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    Bonjour a tous,

    Mon post commence à dater car j'ai retourné le problème dans tout les sens et testé longtemps... mais il persiste.

    Je rapelle le contexte :

    Je developpe une application sous Visual Studio 2005 qui comprends 4 ecran.
    Mais il faut que je lui ajoute un mode "ligne de commande".

    J'arive à recuperer les parametres en ligne de commande sans soucis.
    Seulement je n'arrive pas a afficher quoi que ce soit dans la fenetre DOS qui lance l'application Oo.

    J'ai essayé EditBin mais je dois pas l'utiliser correctement je pense...

    Je suis un peu blazé là... mon applis marche nickel, toutes les fonctionnalitées sont opérationnelles et je vais me retrouver hors délais de livraison pour un simple affichage dans une fenetre DOS :-((

    Aidez moi s'il vous plait :-/

  10. #10
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Un programme graphique (WinMain() etc.) n'est pas rattaché à une console.
    À partir de Windows XP, un process sans console peut récupérer la console depuis laquelle il a été lancé avec la fonction AttachConsole().

    Mais si tu veux être compatible avec un autre système, il faudra que tu fasses deux versions du programme...

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2004
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    voilà bien une nouvelle qui me desole et me rassure en même temps.

    Je vais donc essayer de trouver une solution de contournement.

    Merci beaucoup en tout cas :-)

  12. #12
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut
    Tu peux creer une console a n'importe quel moment en appelant AllocConsole, mais tes flux standards (cout...) ne seront pas connectes. Il faut le faire manuellement (recherche...).
    Pour faire un programme console, si tu as initialement cree un projet Win32 au lieu de Win32 Console, tu peux changer ca facilement dans les options de ton projet, linker->system->subsystem (sous VC6 on pouvait pas depuis l'IDE alors y'avait cette astuce de editbin, mais c'est onsolete maintenant). Mais VC++ va rechercher main() et non plus WinMain()...

  13. #13
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    L'autre inconvénient d'AllocConsole(), c'est qu'utilisé depuis un invite de commandes, ça ouvrira une nouvelle console pour le programme graphique, non?

    Au lieu d'afficher la sortie dans la console d'origine...

  14. #14
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut
    Oui. Le programme n'etant pas "tagué" comme CUI, il n'heritera pas de la console de son pere.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fenetre dos lors d'execution
    Par hammasaidi dans le forum Débuter avec Java
    Réponses: 0
    Dernier message: 22/04/2012, 23h29
  2. Réponses: 1
    Dernier message: 27/09/2009, 00h14
  3. Afficher le deroulement d'une fenetre DOS dans un programme
    Par spacemoo dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/07/2009, 20h57
  4. ouvrir fenetre dos et executer un .bat
    Par crazykangourou dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 14/03/2007, 08h35
  5. [Executable]Comment lancer son programme sans fenêtre DOS
    Par the_ugly dans le forum Général Java
    Réponses: 11
    Dernier message: 09/11/2005, 07h16

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