ocultar ejecutar bat windows visual-studio qt console hide

ejecutar - Ocultar la consola de la aplicación de Windows



hide console c# (11)

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)


En las opciones de creación de enlaces de compilació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")


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


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

<ItemDefinitionGroup> <Link> <SubSystem>Windows</SubSystem> </Link> </ItemDefinitionGroup>


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 ().


Puede deshacerse de la consola llamando a:

FreeConsole();


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. =)


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".


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.


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 !


Vaya a: Projects --> Run y desmarcar Run in terminal casilla de verificación de la Run in terminal


yo uso ese método y funcionó

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