2012-04-04 2 views
6

boîte de console d'un programme GUI Lorsque je test compiler un programme simple interface graphique Win32 dans MinGW + MSys avec la ligne de commande et l'exécuter:Comment arriver tour de compilation par MinGW + code de bloc

$ g ++ principale. app cpp -std = C++ 0x

./app $

seulement montre la boîte de dialogue. Mais mettez ce programme dans Code :: Block IDE et compilez-le, il continue ainsi qu'une boîte de console noire avec le dialogue. Ajouter -mwindows dans les options de lien sans effet.

main.cpp

#include <windows.h> 
int WinMain(HINSTANCE,HINSTANCE,LPSTR,int) 
{ 
    MessageBox(0,"Hello, Windows","MinGW Test Program",MB_OK); 
    return 0; 
} 
+1

Avez-vous essayé les options utilisées par l'auteur de ce billet? Sous Options de construction> Autres options, ils ont '-Wl, - sous-système, windows' - http://phrasz.blogspot.com.au/2011/05/codeblocks-disable-console-window.html – charlemagne

+0

'-Wl, - -subsystem, les fenêtres ne fonctionnent pas dans codeblock IDE, je l'ajoute dans les options du compilateur et de l'éditeur de liens me montre toujours la boîte de console. – bo0k

+0

@ bo0k, je sais que ça fait longtemps, mais si vous venez de l'oublier, je viens de demander s'il y avait un moyen de le faire sans projet, puisque les options de l'éditeur de liens que j'ai essayé ne fonctionnaient pas, et le "problème" avec '-Wl, - sous-système, windows' est qu'il ne fonctionne pas * dans * l'EDI. Si vous l'exécutez depuis l'explorateur, il n'aura pas de fenêtre de console. Je pensais juste que tu aimerais savoir. – chris

Répondre

11

le mettre dans un projet, et dans les paramètres du projet il y a une option de ne pas avoir une fenêtre de console.

Si vous ne pouvez pas être dérangé pour l'avoir dans un projet, un appel à ShowWindow (GetConsoleWindow(), SW_HIDE); le fera clignoter sur l'écran, puis disparaîtra. Notez que vous devez #define _WIN32_WINNT ou 0x0500 ou supérieur avant d'inclure windows.h pour avoir accès à GetConsoleWindow(). Je reviendrai un peu avec un emplacement spécifique pour le désactiver.

//hide console window at start 
#define _WIN32_WINNT 0x0501 //this is for XP 
#include <windows.h> 

int main() 
{ 
    ShowWindow (GetConsoleWindow(), SW_HIDE); 
    //rest of program here 
} 

EDIT: Je l'ai trouvé, voici comment ne pas avoir une fenêtre de la console:

  1. Project Cliquez sur le menu CodeBlocks.
  2. Cliquez sur Propriétés.
  3. Cliquez sur le deuxième onglet, Construire les cibles.
  4. Sur la droite, où il est dit Type: Application console, remplacez-le par l'application GUI.
  5. Reconstruisez le projet.
+1

Quelle option dans le codeblock? C'est OK quand j'utilise la ligne de commande. Je pense que codeblock devrait ajouter quelques options de compilation ou de lien pour faire apparaître la console, mais je ne sais pas comment trouver la commande codeblock en cours d'exécution. – bo0k

+0

Merci, je pense que c'est la bonne façon! – bo0k

+0

Je ne suis pas sûr de l'une des options de construction de la ligne de commande spécifiques à C :: B. Je sais que cette façon fonctionne avec l'interface graphique. – chris

Questions connexes