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
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
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);