2012-01-20 2 views
5

Возможный дубликат:
Create an Application without a Window
Win32 programming hiding console windowСкрытие черное окно в C++

Как я могу скрыть окно консоли, которое появляется при запуске программы на C++? Программа ничего не выводит на stdout, и мне не нужно, чтобы это черное окно появлялось каждый раз, когда я запускаю программу. Я не хочу, чтобы он был сведен к минимуму. Я хочу, чтобы он был невидим. Есть идеи?

+1

Это зависит от платформы. Вы говорите о Windows? –

ответ

16

Если вы хотите, чтобы скрыть консоль можно вызвать FreeConsole на окнах

#include <Windows.h> 

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

Как Давид говорил об этом может мигать в течение короткой секунды. Если вы не хотите, что вы можете создать windows service или приложение графического интерфейса пользователя Windows, а не создать окно, как показано ниже

#include <windows.h> 

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

Это все еще показывает окно консоли для секунды секунды. –

+1

FreeConsole - золото! Спасибо за совет. Я в порядке с короткой вспышкой ... – jzeus

5

Похоже, проблема в том, что вы создаете консольное приложение. По умолчанию они поставляются с консолью. Они либо наследуют консоль процесса, вызвавшего их, если он есть, либо иным образом создают новую консоль.

Вы должны сделать свое приложение целевым подсистемой графического интерфейса, а не подсистемой консоли. Это не означает, что вам нужно показать любой графический интерфейс. Совершенно разумно и обыденно создавать приложение, предназначенное для подтипа GUI, но не отображающее никаких окон.

+0

Также обратите внимание, что GUI не может читать или записывать на консоль (если есть), которая запустила ее. –

+0

Спасибо, я об этом не думал! ; D – jzeus

+0

@ David Но если у меня есть требование только для консольного приложения, но без мерцания окна консоли, можно ли это сделать? – foobar

Смежные вопросы