2012-04-04 2 views
6

Cuando la prueba compilar un programa simple de Win32 GUI en MinGW + MSys con la línea de comandos y ejecutarlo:Como llegar paseo de la caja de la consola de un programa de interfaz gráfica de usuario compilar por MinGW Código + :: Bloque

$ g ++ principal. CPP -o app -std = C++ 0x

$ ./app

sólo un cuadro de diálogo muestra el recuadro. Pero ponga este programa en Code :: Block IDE y compílelo, siempre más una consola negra con el cuadro de diálogo. Agregue -mwindows en opciones de enlace sin efecto.

main.cpp

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

¿Has probado las opciones que usó el autor de esta entrada de blog? En Opciones de compilación> Otras opciones tienen '-Wl, - subsistema, ventanas' - http://phrasz.blogspot.com.au/2011/05/codeblocks-disable-console-window.html – charlemagne

+0

'-Wl, - -subsystem, windows 'no funcionan en codeblock IDE, lo agrego tanto al compilador como a las opciones del enlazador aún me muestran el cuadro de la consola. – bo0k

+0

@ bo0k, sé que ha pasado mucho tiempo, pero si acaba de olvidarse de esto, acabo de preguntar si había alguna forma de hacerlo sin un proyecto, ya que las opciones del vinculador que probé no funcionaban, y el "problema" con '-Wl, - subsistema, windows' es que solo no funciona * dentro * del IDE. Si lo ejecuta desde el explorador, no tendrá una ventana de consola. Solo pensé que te gustaría saber. – chris

Respuesta

11

lo puso en un proyecto, y en la configuración del proyecto hay una opción para no tener una ventana de consola.

Si no puede tener la molestia de tenerlo en un proyecto, una llamada al ShowWindow (GetConsoleWindow(), SW_HIDE); lo hará parpadear en la pantalla y luego desaparecerá. Tenga en cuenta que debe #define _WIN32_WINNT como 0x0500 o superior antes de incluir windows.h para tener acceso al GetConsoleWindow(). Regresaré un poco con una ubicación específica para deshabilitarlo.

//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: encontró, aquí es cómo no tiene una ventana de la consola:

  1. Haga clic en el menú Proyecto CodeBlocks.
  2. Haga clic en Propiedades.
  3. Haga clic en la segunda pestaña, Build Targets.
  4. A la derecha, donde dice Tipo: aplicación de consola, cámbielo a la aplicación GUI.
  5. Reconstruye el proyecto.
+1

¿Qué opción en Codeblock? Está bien cuando estoy usando la línea de comando. Creo que Codeblock debería agregar algunas opciones de compilación o enlace para hacer que la consola aparezca, pero no sé cómo encontrar el código de comando en ejecución. – bo0k

+0

¡Gracias, creo que es la manera correcta! – bo0k

+0

No estoy seguro acerca de cualquiera de las opciones de compilación de línea de comando específicas de C :: B. Sé que esta manera funciona con la GUI sin embargo. – chris

Cuestiones relacionadas