Я хочу написать одну С++-программу, компилируя и связывая файл .cpp с файлом .exe. если я дважды щелкнул по нему и выполнил его, консоль откроется и закрыта. Я не хочу, чтобы консоль появлялась вообще. Пожалуйста, помогите.
Я не хочу, чтобы консоль появлялась, когда я запускаю программу на С++
Ответ 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);