Ocultar console do aplicativo do Windows

Eu tenho um aplicativo Qt, e quando eu executar este aplicativo, há um console abrindo por trás dele. Em desenvolvimento é legal porque eu vejo saídas de debugging no console, mas quando eu quero dar este executável para o cliente não deve haver nenhuma janela do console. como eu escondo isso?

(Estou usando o Visual Studio 2008)

Parece que sua configuração de vinculador está incorreta. Clique com o botão direito do mouse nas configurações do projeto, Propriedades, Vinculador, Sistema, Sub-sistema. Certifique-se de que “Windows” esteja selecionado, não “Console”.

E, altere main () para WinMain ().

No conjunto de opções do vinculador de construção do projeto

 /SUBSYSTEM:windows /ENTRY:mainCRTStartup 

Ou use o seguinte # pragma no arquivo de origem com o int main(...)

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

Você pode se livrar do console chamando:

 FreeConsole(); 

Eu uso esse método e funcionou

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

Próxima solução;)

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

  1. Definir configurações de Projetos / Propriedades de configuração / Linker / System / SubSystem = Windows (/ SUBSYSTEM: WINDOWS)

    Mas para x64 há um erro de linker: LNK2019: símbolo externo não resolvido _WinMain referenciado na function _WinMainCRTStartup “Para evitar isso

  2. Substitua o seguinte código:

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

    de

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

Funciona bem para ambas as plataformas – Win32 e x64.

Pode ser a melhor opção não é simplesmente remover (como Andy M sugeriu), mas editar o arquivo * .pro adicionando algo como

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

Na debugging, você pode ver a janela do console, mas não na liberação. Eu gosto disso. =)

Sugiro verificar a presença da seguinte linha no seu arquivo .PRO:

 CONFIG += console 

Se você puder encontrá-lo, remova-o! Deve corrigir o seu problema!

Espero que ajude !

Se você usa Properties -> Linker -> System -> SubSystem | janelas

E pegue um erro de linker.

Você pode olhar para o Linker -> Avançado -> Ponto de Entrada

e defina o valor para o nome da sua function “principal”.

Esse é o seu ponto de input se torna, principal, se a sua function principal é um “main”.

Para aqueles que estão editando o .vcxproj diretamente, você deseja adicionar um SubSystem com o valor Windows ao seu Link ItemDefinitionGroup seguinte forma:

   Windows   

Vá para: Projects --> Run e desmarque a checkbox de seleção Run in terminal

Isso funcionou para mim:

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

Eu precisava executar um exe para monitorar um arquivo usando o QFileSystemWatcher então usei isto:

 CONFIG -= console