2012-01-20 21 views
5

Duplicar posible:
Create an Application without a Window
Win32 programming hiding console windowocultar la ventana de negro en C++

¿Cómo puedo ocultar la ventana de la consola que aparece al ejecutar mi programa en C++? El programa no genera nada para stdout, y no necesito que aparezca esa ventana negra cada vez que ejecuto el programa. No quiero que se minimice, quiero que sea invisible. ¿Algunas ideas?

+1

Esto depende de la plataforma. ¿Estás hablando de Windows? –

Respuesta

16

Si desea ocultar la consola puede llamar FreeConsole en las ventanas

#include <Windows.h> 

int main() 
{ 
    FreeConsole(); 
    //other stuff 
} 

Como David mencionó esto podría parpadear durante un breve instante. Si no desea que se puede crear una aplicación o una windows service GUI de Windows y no crear una ventana como la de abajo

#include <windows.h> 

int WinMain(HINSTANCE hInstance, 
        HINSTANCE hPrevInstance, 
        LPTSTR lpCmdLine, 
        int  nCmdShow) 
{ 
    //do stuff here 
    return 0; 
} 
+3

Esto todavía muestra la ventana de la consola por una fracción de segundo –

+1

FreeConsole es oro! gracias por el consejo. Estoy bien con un breve flash ... – jzeus

5

Parece que el problema es que se está creando una aplicación de consola. Estos vienen con una consola por defecto. O heredan la consola del proceso que los llamó, si tiene uno, o bien crearon una consola nueva.

Debe hacer que su aplicación apunte al subsistema GUI en lugar de al subsistema de la consola. Esto no significa que tenga que mostrar ninguna GUI. Es perfectamente razonable y común hacer una aplicación que apunta al subsistema GUI pero no muestra ninguna ventana.

+0

También tenga en cuenta que una GUI no puede leer o escribir en la consola (si hay alguna) que la lanzó. –

+0

¡Gracias, no pensé en eso! ; D – jzeus

+0

@David Pero si tengo un requisito de aplicación basada en consola solamente, pero sin parpadear en la ventana de la consola, ¿se puede lograr? – foobar

Cuestiones relacionadas