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 :

console (degoguage ou autre) avec un prog en SDL


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    retraité développement loisirs
    Inscrit en
    Janvier 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : retraité développement loisirs

    Informations forums :
    Inscription : Janvier 2012
    Messages : 147
    Par défaut console (degoguage ou autre) avec un prog en SDL
    bonjour,
    presque tout est dans le titre,
    dans un programme langage C en SDL, je voudrais ouvrir, en plus de la fenêtre principale, une console qui pourrait me servir pour le débogage ou comme fenêtre de dialogue simple (avec printf et scanf)
    je sais que c'est possible car j'ai un programme qui le fait, mais qui n'a pas été développé par moi... et je n'arrive pas à reproduire cette technique.
    NB : mon ide est Visual C++ 2010 express
    merci

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 480
    Par défaut
    Si tu travaillais sous UNIX, il t'aurait suffi d'ouvrir le descripteur d'un terminal et cela aurait été faisable quatre ou cinq lignes de C. Sinon, en l'absence de classes spécifiquement dédiées à cette tâche, je crois qu'il n'y a pas de solution miracle. Il faut créer une fenêtre dédiée et écrire dedans.

  3. #3
    Membre confirmé
    Homme Profil pro
    retraité développement loisirs
    Inscrit en
    Janvier 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : retraité développement loisirs

    Informations forums :
    Inscription : Janvier 2012
    Messages : 147
    Par défaut
    merci obsidian,
    il me semble sue SDL ne permet pas d’ouvrir plusieurs fenêtres simultanément.
    cependant ce programme que j'ai récupéré (et qui a été créé sur un terminal, donc je suppose sur unix) ouvre une fenêtre console en plus de ma fenêtre principale SDL alors qu'il est sur mon ordi Windows.
    le gars qui l'a créé me dit que c'est certainement un paramétrage de mon ide visual C++ 2010.net mais qu'il n'en sait pas plus, ne travaillant jamais sous windows.
    Et moi j'avoue que cette possibilité m'intéresse beaucoup j'ai essayé de comprendre et de reproduire, mais mystère !!!...

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 480
    Par défaut
    Prenons garde à ne pas tout mélanger :

    En C, chaque programme (hosted) utilisant la bibliothèque standard a une entrée standard, une sortie standard et une sortie d'erreur standard. Celles-là mêmes que tu sollicites lorsque tu utilises stdin, stdout ou stderr.

    Ces flux sont en principe associés par défaut à la console que tu utilises pour interagir avec l'utilisateur et/ou faire circuler les informations dont le processus a besoin. Donc stdin est associé par défaut au clavier de l'utilisateur et stdout à la console dans lequel ton programme fonctionne, mais il se peut aussi, dans le cas d'un pipe par exemple, que la sortie standard d'un processus soit directement associée à l'entrée d'un autre.

    Si tu exécutes ton programme directement depuis Visual C++, il y a une fenêtre spéciale dans l'IDE qui sert à cela, dans un onglet. Il faut peut-être demander dans les menus à la faire afficher explicitement. Sinon, il est possible que ton programme ouvre automatiquement une « boîte DOS » à l'exécution. C'est cette boîte qui servira de console, à condition d'avoir un programme en mode console avec une fonction main() et pas Winmain().

    Sinon, en désespoir de cause, il existe un appel pour associer une console à ton programme : AllocConsole(). Mais cet appel peut échouer s'il en existe déjà une. À toi de voir.

  5. #5
    Membre confirmé
    Homme Profil pro
    retraité développement loisirs
    Inscrit en
    Janvier 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : retraité développement loisirs

    Informations forums :
    Inscription : Janvier 2012
    Messages : 147
    Par défaut
    bon je ne suis pas certain d'avoir tout compris mais:
    1) oui mon prog tourne avec main et pas winmain.
    2) pourrais tu me donner le mode emploi pour allocconsole () en C
    j'en ai trouvé sur le net, mais en C++
    3) il n'est pas impossible que cette console s'ouvre pour afficher des messages d'erreur, comme tu le suggère, mais en l'occurrence aucune erreur ne s'y affiche, juste de printf.
    j'ai essayé d'y inclure un scanf et il marche.
    en fait le gars qui la fait l'utilise pour faire du debug (affichage variables, positions X, Y, etc...)
    4) si j'ai bien compris ce que tu disais entre les lignes, ma demande est un peu tordue ? c'est ça ? (si ça ne se fait pas, il faut me le dire et je en le ferai pas ;o))
    Merci de votre patience à tous, et à toi Obsidian

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 122
    Billets dans le blog
    148
    Par défaut
    Bonjour,

    Je pense que vous parlez de la console d'exécution, qui se lance en même temps que le programme. Pour la faire apparaître, il faut que votre projet soit de type "Application Console". Cela peut être modifié dans les propriétés du projet (type d'application).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Membre confirmé
    Homme Profil pro
    retraité développement loisirs
    Inscrit en
    Janvier 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : retraité développement loisirs

    Informations forums :
    Inscription : Janvier 2012
    Messages : 147
    Par défaut
    Génial !
    merci LITTLEWHITE
    oui, c'est bien ça, je marque donc résolu.
    et si ça peut aider d'autres, dans visual C++2010.net,
    le chemin de paramétrage est
    projet
    -propriétés
    --éditeur de liens
    ---système
    ----sous système
    il faut mettre "Console(/SUBSYSTEM:CONSOLE)" pour avoir la console en plus de la fenetre SDL

    sinon
    "Windows(/SUBSYSTEM:WINDOWS)" pour ne plus avoir la console et avoir juste la fenêtre du programme
    ----
    je trouve ça vraiment intéressant, pendant le déboguage, d'avoir cette console, et quand le programme est au point, avant la dernière compilation on remet le paramètre à Windows et la console disparaît ! on peut distribuer le programme propre
    --------------
    merci encore, j'avais cherché près de 10 heures sans trouver et c'est tout simple, quand on sait !

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

Discussions similaires

  1. Passer d'un champ à l'autre avec TAB
    Par Sharingan dans le forum MFC
    Réponses: 4
    Dernier message: 11/10/2005, 13h52
  2. [C#] Passer d'un webform à un autre avec blocage
    Par Coplan dans le forum ASP.NET
    Réponses: 3
    Dernier message: 11/05/2005, 12h04
  3. Passage d'un enregistrement à un autre avec TAB
    Par Cécile154 dans le forum Access
    Réponses: 2
    Dernier message: 16/02/2005, 14h47
  4. Problème avec un prog tcl autonome
    Par jaabouc dans le forum Linux
    Réponses: 3
    Dernier message: 04/06/2004, 21h13
  5. Réponses: 8
    Dernier message: 29/09/2003, 15h33

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