Nascondi console dell’applicazione Windows

Ho un’applicazione Qt e quando eseguo questa applicazione, dietro c’è un’apertura della console. In fase di sviluppo è bello perché vedo gli output di debug sulla console, ma quando voglio dare questo eseguibile al cliente non dovrebbe esserci alcuna finestra della console. come lo nascondo?

(Sto usando Visual Studio 2008)

Sembra che la configurazione del linker non sia corretta. Fare clic con il tasto destro del mouse sul progetto, Proprietà, Linker, Sistema, Impostazioni sottosistema. Assicurati che “Windows” sia selezionato, non “Console”.

E, cambia main () in WinMain ().

Nel set di opzioni di costruzione del link di progetto

 /SUBSYSTEM:windows /ENTRY:mainCRTStartup 

O utilizzare il seguente #pragma nel file di origine con int main(...)

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

È ansible sbarazzarsi della console chiamando:

 FreeConsole(); 

Io uso quel metodo e ha funzionato

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

Prossima soluzione;)

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

  1. Imposta impostazioni progetto / Proprietà di configurazione / Linker / Sistema / Sottosistema = Windows (/ SUBSYSTEM: WINDOWS)

    Ma per x64 c’è l’errore linker: LNK2019: simbolo esterno non risolto _WinMain referenziato nella funzione _WinMainCRTStartup “Per evitarlo

  2. Sostituisci il seguente codice:

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

    di

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

Funziona bene per entrambe le piattaforms: Win32 e x64.

Forse l’opzione migliore non sarà semplicemente rimuovere (come suggerito da Andy M) ma modificare il file * .pro aggiungendo qualcosa di simile

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

Nel debug puoi vedere la finestra della console ma non nel rilascio. Mi piace. =)

Suggerirei di verificare la presenza della seguente riga nel file .PRO:

 CONFIG += console 

Se riesci a trovarlo, rimuovilo! Dovrebbe risolvere il tuo problema!

Spero che sia d’aiuto !

Se si utilizza Proprietà -> Linker -> Sistema -> Sottosistema | windows

E ottieni un errore del linker.

Puoi guardare Linker -> Advanced -> Entry Point

e imposta il valore sul nome della tua funzione “principale”.

Questo è il tuo Punto di Entrata diventa, principale, se la tua funzione principale è un “principale”.

Per quelli di voi che modificano direttamente .vcxproj, si desidera aggiungere un SubSystem con il valore Windows al proprio object ItemDefinitionGroup come segue:

   Windows   

Vai a: Projects --> Run e deseleziona la casella di controllo Run in terminal

Questo ha funzionato per me:

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

Avevo bisogno di eseguire un exe per monitorare un file usando QFileSystemWatcher così ho usato questo:

 CONFIG -= console