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

Visual C++ Discussion :

Cacher la console sous VC++


Sujet :

Visual C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Points : 10
    Points
    10
    Par défaut Cacher la console sous VC++
    Bonjour, je viens de finir un programme en mode win console sous VC++. Ce programme utilise une interface GTK donc je suis obliger de garder ce type de projet. Ma question c'est comment est ce que je peut enlever ou cacher la console en fond sachant que maintenant que le dev est terminé, je n'en ai plus besoin et cela fais un peu moche sur une version finale.

    J'ai regarder pas mal de commentaire qui disais de passer en version Win32 application mais moi je ne peux pas a cause de GTK, ou alors de passer en projet GUI mais il n'y a pas ça sous VC++ donc j'en viens a vos conseils.

    Merci

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Personne ne peut m'aider? Est ce possible au moins?

    merci de vos réponses

  3. #3
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    plutôt que d'essayer de cacher la console ,tu fais un projet win32 simple ...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    j'ai déjà fais remarquer dans mon premier message qu'il métait impossible de passer en Win32 application avec une interface GTK.

    Je m'explique, la déclaration de la fonction WinMain est différente de celle de main et ne comporte pas argc et argv, hors il sont absolument nécessaire à l'initialisation de gtk par la fonction gtk_init.

    A moins que vous pouvez m'expliquez comment faire du gtk avec un projet win32?Sinon une autre suggestion?

    Merci d'avoir répondu

  5. #5
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    je ne fais pas de gtk ,mais si ton probléme est de recuperer les arguments:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    int APIENTRY WinMain(HINSTANCE hInstance,
                         HINSTANCE hPrevInstance,
                         LPSTR     lpCmdLine,
                         int       nCmdShow)
    {
         // TODO: Place code here.
     
        return 0;
    }
    ils sont dans lpCmdLine ...

  6. #6
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 754
    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 754
    Points : 10 719
    Points
    10 719
    Billets dans le blog
    3
    Par défaut
    Les 3eme parametre de WinMain est la ligne de commande. Tu peux la parser pour en extraire les arguments et construire toi meme un tableau argv, en lui donnant comme parametre argv[0] le path de l'exe (GetModuleFileName(NULL)). Bon, ca peut te faire un peu peur, mais tu dois facilement trouver du code qui fait déja ca.

  7. #7
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    un truc comme ça devrait suffire:
    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
     
        char szNameApp[255];
        char *argv[10],*szCmdLine;
        int argc=0;
     
        for(int i=0;i<10;i++) argv[i]=NULL;
     
        GetModuleFileName(NULL,szNameApp,sizeof(szNameApp));
        argv[0]=szNameApp;
     
        szCmdLine = new char [strlen(m_lpCmdLine)+1];
        strcpy(szCmdLine,m_lpCmdLine); // pour ne pas toucher a lpCmdLine.
     
        char *szArg=strtok(szCmdLine," ");
        if(szArg) 
        {
          do
          {
              argv[++argc]=szArg;
              szArg=strtok(NULL," ");
          }
          while(argc<10 && (szArg!=NULL));
        }

  8. #8
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 754
    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 754
    Points : 10 719
    Points
    10 719
    Billets dans le blog
    3
    Par défaut
    De mémoire c'est un petit peu plus complexe car il faut gérer les arguments du type "avec espace", en virant les guillemets.
    Jette un oeil aux sources de la crt (dans le PSDK par exemple), au fichier stdargv.c notament.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Merci pr toutes ces informations, je vais tester tout ça !

    Merci encore

Discussions similaires

  1. Cacher la console dos
    Par Jbx 2.0b dans le forum SDL
    Réponses: 5
    Dernier message: 09/10/2009, 13h15
  2. [C++] Programme console sous Windows
    Par Invité4 dans le forum Windows
    Réponses: 4
    Dernier message: 17/08/2006, 22h53
  3. Réponses: 6
    Dernier message: 20/12/2005, 01h03
  4. [web] [PerlTk] Console sous windows
    Par Cyspak dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 28/04/2004, 15h21
  5. Taille d'une console sous linux
    Par Shinjuku dans le forum C
    Réponses: 7
    Dernier message: 13/06/2003, 13h44

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