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

Windows Discussion :

Interface en mode texte


Sujet :

Windows

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2003
    Messages : 142
    Points : 73
    Points
    73
    Par défaut Interface en mode texte
    Bonjour,

    Je développe une petite application et le choix de l'interface s'est porté sur une interface en mode texte pour la portabilité ainsi que pour la légèreté d'une telle interface. Nous n'avons pas à afficher d'images ou de vidéos, donc l'affichage texte est amplement suffisant.

    On a commencé à chercher un peu mais il ne semble pas exister beaucoup d'options satisfaisantes. Il semble que ncurse soit une méthode puissante et stable, sous certaines plateformes. Mais nous n'avons trouvé que des bribes d'information sur le potentiel de ces API dans un environnement Windows. Ça ne me semble pas clair si oui ou non ces API sont disponibles sous Windows. En tout cas, nous n'avons rien trouvé à ce sujet.

    Est-ce qu'il existe, sous Windows, de bonnes solutions pour créer facilement des interfaces en mode texte - et dont l'implémentation n'est pas trop complexe?

    Merci beaucoup pour votre aide dans notre quête ^^

    Sébastien.

  2. #2
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut R:
    Citation Envoyé par sekiryou
    Est-ce qu'il existe, sous Windows, de bonnes solutions pour créer facilement des interfaces en mode texte
    Tu peux toujours utiliser les fonctions du DOS sous Windows. Si tu veux être portable, utilise la technique des séquences d'échappement ANSI.

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Pour si vous développez sous Windows avec MinGW, vous pouvez utiliser la bibliothèque conio 2.0, qui si j'ai bien compris possède la même interface que curses...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2003
    Messages : 142
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par Melem
    Tu peux toujours utiliser les fonctions du DOS sous Windows. Si tu veux être portable, utilise la technique des séquences d'échappement ANSI.
    On a essayé avec ces fontions, mais ça ne semble pas être supporté facilement avec les nouvelles version de Windows. Plein de personnes nous disent essaye telle ou telle chose et ça ne fonctionne jamais sur nos poste mais ça fonctionne sur le leur ! Allez savoir, il me manque quelque chose entre les deux. On ne peut pas se permettre que le fonctionnement de l'application soit aléatoire.

    Citation Envoyé par Médinoc
    Pour si vous développez sous Windows avec MinGW, vous pouvez utiliser la bibliothèque conio 2.0, qui si j'ai bien compris possède la même interface que curses...
    Les outils de développements n'ont pas encore été déterminés, donc nous sommes ouvert à pas mal toutes les solutions. Je vais regarder qu'est-ce que ça donne avec cette bibliothèque. Mais par expérience, je me méfie des bibliothèque "conio"... elles semblent être complètement différentes d'un endroit à l'autre, non standardisé, etc. Chacun à sa petite recette. On verra ^^

    Merci, et si vous avez d'autres solutions, ne vous gênez pas !

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2003
    Messages : 142
    Points : 73
    Points
    73
    Par défaut
    J'ai découvert que les API de bases pour utiliser la console sont accessible dans "wincon.h"... enfin, je pense.

    mais quand j'essais d'inclure ce fichier (dans un hello world tout simple) j'ai des messages d'erreurs. Je l'inclue comme suit "#include <wincon>" et ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    main.cpp line 3 wincon: No such file or directory.
    Et si j'ajoute l'extension, ce qu'il ne devrait pas être correct en C++ me semble-t-il, ça me donne 52 erreurs, une par constante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    Project   : Console application
    Compiler  : GNU GCC Compiler (called directly)
    Directory : C:\Documents and Settings\Sekiryou\Bureau\Windows API Help\tests\
    --------------------------------------------------------------------------------
    Compiling: main.cpp
    In file included from main.cpp:3:
    C:/Program Files/CodeBlocks/include/wincon.h:60: error: `WCHAR' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:61: error: `CHAR' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:63: error: `WORD' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:66: error: `SHORT' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:67: error: `SHORT' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:68: error: `SHORT' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:69: error: `SHORT' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:72: error: `DWORD' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:73: error: `BOOL' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:76: error: `SHORT' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:77: error: `SHORT' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:80: error: `DWORD' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:86: error: `WORD' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:90: error: typedef `BOOL' is initialized (use __typeof__ instead)
    C:/Program Files/CodeBlocks/include/wincon.h:90: error: `CALLBACK' was not declared in this scope
    C:/Program Files/CodeBlocks/include/wincon.h:90: error: `PHANDLER_ROUTINE' was not declared in this scope
    C:/Program Files/CodeBlocks/include/wincon.h:90: error: expected `,' or `;' before '(' token
    C:/Program Files/CodeBlocks/include/wincon.h:93: error: `WORD' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:94: error: `WORD' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:95: error: `WORD' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:97: error: `WCHAR' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:98: error: `CHAR' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:100: error: `DWORD' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:106: error: `PACKED' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:110: error: `DWORD' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:111: error: `DWORD' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:112: error: `DWORD' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:115: error: `UINT' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:118: error: `WORD' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:120: error: `KEY_EVENT_RECORD' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:128: error: `WINAPI' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:132: error: `HANDLE' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:133: error: `WINAPI' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:134: error: `WINAPI' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:135: error: `WINAPI' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:136: error: `WINAPI' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:137: error: `WINAPI' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:138: error: `WINAPI' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:139: error: `UINT' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:140: error: `WINAPI' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:141: error: `WINAPI' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:142: error: `UINT' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:143: error: `WINAPI' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:144: error: `DWORD' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:145: error: `DWORD' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:150: error: `WINAPI' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:151: error: `WINAPI' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:152: error: `WINAPI' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:153: error: `WINAPI' does not name a type
    C:/Program Files/CodeBlocks/include/wincon.h:154: error: `WINAPI' does not name a type
    Process terminated with status 1 (0 minutes, 1 seconds)
    52 errors, 0 warnings
    Voilà... bizarre...
    Sébastien

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Il faut inclure <windows.h> avant d'inclure <wincon.h>.

    Et oui, ils ont des extensions, car ce sont des headers C qui n'ont pas d'équivalent C++ (tout comme les headers POSIX, d'ailleurs).
    Enfin, je devrais plutôt dire des headers C/C++, car tu trouveras pas mal de #ifdef __cplusplus dedans...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    #include <wincon>
    Et qu'est-ce que c'était censé faire?

    Pour inclure ce wincon.h tu dois d'abord inclure windows.h (si ce n'est pas déja inclus avec d'ailleurs je sais pas trop) t'as pas jeté un coup d'oeil aux messages d'erreurs de ton compilateur?

    Et sinon pour gérer la console avec les APIs (windows.h):
    GetStdHandle(STD_OUTPUT_HANDLE) retourne le Handle de la sortie standard.
    Tu utiliseras ce Handle avec SetConsoleTextAttribute(), SetConsoleCursorPosition(), etc. Renseigne-toi sur ces fonctions.

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

Discussions similaires

  1. Réponses: 133
    Dernier message: 11/04/2012, 11h18
  2. [TP]Optimiser le rafraîchissement de l'écran en mode texte?
    Par Ponytear dans le forum Turbo Pascal
    Réponses: 8
    Dernier message: 15/02/2004, 11h12
  3. Probleme d'ecriture dans un fichier en mode Text
    Par bbozet dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/01/2004, 13h46
  4. Retour au mode texte par défaut
    Par coca dans le forum x86 16-bits
    Réponses: 6
    Dernier message: 12/12/2002, 17h22
  5. Réponses: 5
    Dernier message: 11/12/2002, 12h31

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