2012-01-20 15 views
5

Powiel możliwe:
Create an Application without a Window
Win32 programming hiding console windowUkrywanie czarne okno w C++

Jak mogę ukryć okno konsoli, który pojawia się, gdy uruchomię mój program w C++? Program nie wyprowadza niczego na standardowe wyjście i nie potrzebuję tego czarnego okna, które pojawia się przy każdym uruchomieniu programu. Nie chcę, żeby to było zminimalizowane. Chcę, żeby było niewidzialne. Jakieś pomysły?

+1

Jest to zależne od platformy. Czy mówisz o systemie Windows? –

Odpowiedz

16

Jeśli chcesz ukryć konsolę można nazwać FreeConsole na oknach

#include <Windows.h> 

int main() 
{ 
    FreeConsole(); 
    //other stuff 
} 

Dawid wspomniał, że to może migać przez krótką chwilę. Jeśli użytkownik nie chce, że można utworzyć lub aplikacji windows service Windows GUI i nie stworzyć okno jak poniżej

#include <windows.h> 

int WinMain(HINSTANCE hInstance, 
        HINSTANCE hPrevInstance, 
        LPTSTR lpCmdLine, 
        int  nCmdShow) 
{ 
    //do stuff here 
    return 0; 
} 
+3

To nadal pokazuje okno konsoli na ułamek sekundy –

+1

FreeConsole jest złota! dzięki za wskazówkę. Nic mi nie jest z krótkim błyskiem ... – jzeus

5

Brzmi jak problem jest to, że podczas tworzenia aplikacji konsoli. Są one domyślnie wyposażone w konsolę. Oni dziedziczą konsolę procesu, który je wywołał, jeśli ma taki, lub w inny sposób tworzy nową konsolę.

Powinieneś ustawić aplikację jako docelową dla podsystemu GUI, a nie dla podsystemu konsoli. Nie oznacza to, że musisz wyświetlać GUI. Jest całkiem rozsądne i powszechne, aby utworzyć aplikację, która kieruje się do podsystemu GUI, ale nie pokazuje żadnych okien.

+0

Należy również zauważyć, że GUI nie może odczytać ani napisać na konsolę (jeśli istnieje), która ją uruchomiła. –

+0

Dzięki, nie pomyślałem o tym! ; D – jzeus

+0

@David Ale czy mam wymagania tylko aplikacji na konsolę, ale bez migotania okna konsoli, czy można to osiągnąć? – foobar