Ocultar la consola de la aplicación de Windows

Tengo una aplicación Qt, y cuando ejecuto esta aplicación, hay una consola que se abre detrás de ella. En desarrollo, es bueno porque veo salidas de depuración en la consola, pero cuando quiero dar este ejecutable al cliente no debe haber ventana de consola. ¿Cómo lo oculto?

(Estoy usando Visual Studio 2008)

Parece que tu configuración del enlazador es incorrecta. Haga clic con el botón derecho en la configuración del proyecto, Propiedades, Enlazador, Sistema, SubSistema. Asegúrese de que esté seleccionado “Windows”, no “Consola”.

Y cambie main () a WinMain ().

En las opciones de creación de enlaces de comstackción del proyecto

 /SUBSYSTEM:windows /ENTRY:mainCRTStartup 

O use el siguiente #pragma en el archivo fuente con el int main(...)

 #pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:mainCRTStartup") 

Puede deshacerse de la consola llamando a:

 FreeConsole(); 

yo uso ese método y funcionó

 HWND hwnd = GetConsoleWindow(); ShowWindow(hwnd, 0); 

Siguiente solución;)

Env: WixXP x64, msvs 2008, Qt v4.5.3

  1. Establecer configuración de proyectos / Propiedades de configuración / Enlazador / Sistema / SubSistema = Windows (/ SUBSISTEMA: WINDOWS)

    Pero para x64 hay un error del enlazador: LNK2019: símbolo externo no resuelto _WinMain al que se hace referencia en la función _WinMainCRTStartup “Para evitarlo

  2. Reemplace el siguiente código:

     int main(int argc, char *argv[]) { QApplication app(argc, argv); // your code* } 

    por

     int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, char*, int nShowCmd) { int argc = 0; QApplication app( argc, 0 ); } 

Funciona bien para ambas plataformas, Win32 y x64.

Puede ser que la mejor opción sea no eliminar simplemente (como sugirió Andy M), sino editar el archivo * .pro añadiendo algo así como

 CONFIG(debug, debug|release) { CONFIG *= console } else { CONFIG -= console } 

En la depuración, puede ver la ventana de la consola pero no en la versión. Me gusta. =)

Sugeriría verificar la presencia de la siguiente línea en su archivo .PRO:

 CONFIG += console 

Si puedes encontrarlo, quítalo! ¡Debería solucionar tu problema!

Espero eso ayude !

Si usa Propiedades -> Enlazador -> Sistema -> SubSistema | Windows

Y obtiene un error de enlazador.

Puede mirar Linker -> Advanced -> Entry Point

y establece el valor al nombre de tu función “principal”.

Ese es su punto de entrada se convierte, principal, si su función principal es un “principal”.

Para aquellos de ustedes que editan el .vcxproj directamente, quieren agregar un SubSystem con el valor de Windows a su Link ItemDefinitionGroup siguiente manera:

   Windows   

Vaya a: Projects --> Run y desmarcar Run in terminal checkbox de la Run in terminal

Esto funcionó para mí:

 CONFIG(debug, debug|release) { CONFIG *= console } else { CONFIG -= console } 

Necesitaba ejecutar un exe para monitorear un archivo usando QFileSystemWatcher así que usé esto:

 CONFIG -= console