Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

Vous n'avez pas encore de compte Developpez.com ? L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Developpez.com

C++

Choisissez la catégorie, puis la rubrique :

logo
Sommaire > Interface > Applications console
        Qu'est ce qu'une application console ?
        Les programmes dits 'console' ont-ils un intérêt ?
        Comment créer une application console ?
        Comment récupérer des handles sur les entrées/sorties standard d'une application console ?
        Comment utiliser des couleurs dans une application console ?



Qu'est ce qu'une application console ?
Créé le 01/09/2004[haut]
auteur : Greybird
Une application console est une application non graphique. L'interface utilisateur est réduite à une simple fenêtre texte. Les entrées et sorties standards (cin, cout, cerr) sont associées à cette fenêtre.

Notez bien qu'une application console est une application 32bits. Ce n'est donc pas une application DOS qui elle serait 16bits. Une application console ne fonctionnera que sous Windows.


Les programmes dits "console" ont-ils un intérêt ?
Créé le 01/09/2004[haut]
auteur : Geronimo
Il est vrai que sous Windows, les programmes consoles commencent à disparaître et les interfaces graphiques à prendre de plus en plus d'importance.

Néanmoins, il existe des cas où un programme console est bien plus utile qu'un programme graphique, plus lourd. Par exemple, beaucoup de petits utilitaires sont fournis sous la forme d'un exécutable console par Microsoft. C'est notamment le cas pour un utilitaire permettant de scanner les PCs d'un réseau local pour déterminer quels sont ceux qui n'ont pas installé telle ou telle mise à jour de sécurité.

Il est donc à votre charge de déterminer quel est le mode le plus approprié au programme que vous désirez réaliser.


Comment créer une application console ?
Créé le 01/09/2004[haut]
auteur : Greybird
Il vous suffit pour cela d'aller dans le menu Fichier | Nouveau | Autre et de sélectionner l'Expert Console.


Comment récupérer des handles sur les entrées/sorties standard d'une application console ?
Mise à jour le 21/06/2006[haut]
auteur : Greybird
Pour utiliser les API Windows dans une application console, il est parfois nécessaire de posséder un Handle sur une des entrées/sorties standards de celle-ci.

Cela se réalise au moyen de l'API GetStdHandle. Cette fonction prend pour unique paramètre :
  • STD_INPUT_HANDLE : handle de l'entrée standard (cin)
  • STD_OUTPUT_HANDLE : handle de la sortie standard (cout)
  • STD_ERROR_HANDLE : handle de la sortie d'erreurs standard (cerr)
Ainsi, le code suivant récupère un handle sur la sortie standard de l'application console :

HANDLE hOut;
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
if (hOut != INVALID_HANDLE_VALUE)
{
  // Utilisation du handle.
}
lien : faq Qu'est ce qu'un HANDLE ?

Comment utiliser des couleurs dans une application console ?
Créé le 01/09/2004[haut]
auteurs : Greybird, Smortex
Les applications console n'ont pas l'obligation d'être ternes ! Vous pouvez utiliser les couleurs dans une application console !
Le code suivant vous donne un exemple :

#include <Windows.hpp>
#include <iostream>
using namespace std;

// ...

HANDLE hOut;
CONSOLE_SCREEN_BUFFER_INFO csbiAncien;

hOut = GetStdHandle(STD_OUTPUT_HANDLE);
if (hOut != INVALID_HANDLE_VALUE)
{
  // on sauvegarde l'état de la console
  GetConsoleScreenBufferInfo(hOut,&csbiAncien);

  // on met le texte en bleu
  SetConsoleTextAttribute(hOut,FOREGROUND_BLUE);
  cout << "Ceci est en bleu\n";

  // on met le texte en bleu
  SetConsoleTextAttribute(hOut,FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY);
  cout << "Ceci est en jaune\n";

  // on restaure l'état initial
  SetConsoleTextAttribute(hOut,csbiAncien.wAttributes);
}
lien : faq Comment récupérer des handles sur les entrées/sorties standard d'une application console ?


Consultez les autres F.A.Q.


Valid XHTML 1.0 TransitionalValid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Contacter le responsable de la rubrique C++

Partenaire : Hébergement Web