Подтвердить что ты не робот

Я не хочу, чтобы консоль появлялась, когда я запускаю программу на С++

Я хочу написать одну С++-программу, компилируя и связывая файл .cpp с файлом .exe. если я дважды щелкнул по нему и выполнил его, консоль откроется и закрыта. Я не хочу, чтобы консоль появлялась вообще. Пожалуйста, помогите.

4b9b3361

Ответ 1

Существует две возможности для программы Windows создать окно консоли:

  • Программа связана как консольная подсистема exe, которая является запросом Windows, чтобы всегда предоставлять связанное окно консоли.

  • Сам программный код создает консольное окно.

Первый вариант, консольная подсистема, наиболее вероятно.

С компилятором MinGW g++ просто добавьте параметр

-mwindows

С компилятором Visual С++, если вы компилируете из командной строки, добавьте опции

/link /subsystem:windows /entry:mainCRTStartup

Если вы с помощью Visual Studio, измените подсистему на окна и измените точку входа на mainCRTStartup в параметрах компоновщика.

С компилятором Microsoft проще всего связать с модулем, который содержит функцию WinMain, которая сама является нестандартной функцией запуска, и что в нарушение стандарта С++ вызывается обычный стандарт main. Это связано с тем, что подсистема GUI (подсистема "окна" ) компилятор Microsoft, в отличие от, например, g++, по умолчанию не распознает стандарт main. Это просто вещь Microsoft (предположительно, она началась как вещь блокировки поставщика).

Ответ 2

Похоже, вам нужно обновить параметры проекта Windows Visual Studio, чтобы не быть консольным приложением.

Если это не так, отправьте дополнительную информацию о своей среде и инструментах.

Ответ 3

Если вы не можете перейти к приложению Window (я имею в виду GUI), потому что иногда вам может понадобиться использовать консоль для вывода, вы можете использовать следующий код, чтобы скрыть окно консоли:

HWND hWnd = GetConsoleWindow();
ShowWindow(hWnd, SW_HIDE);

Ответ 4

Если вы хотите создать консольную программу со скрытой консолью, сделайте это первой строкой вашей основной процедуры:

ShowWindow( GetConsoleWindow(), SW_HIDE );

Ответ 5

убедитесь, что вы определяете _WINDOWS или WINDOW во время компиляции и компоновки. (в зависимости от вашей среды).

В командной строке вы можете сделать это следующим образом

cl -D_WINDOWS  program.cpp

Ответ 6

В CODEBLOCKS, помимо того, что сказал @ravenspoint, вы должны поместить эту строку в свою первую строку кода:

#define _WIN32_WINNT 0x0501 //this is for XP

И затем:

ShowWindow (GetConsoleWindow(), SW_HIDE);