В общем случае консольные приложения не должны связываться с их окном.Если вам нужны более сложные вещи (показать / скрыть окно, определить его размер, ...), вам, вероятно, следует переключиться на приложение с графическим интерфейсом.Это справедливо даже в том случае, если вы просто не хотите никакого окна: создайте приложение с графическим интерфейсом и не создавайте окна.
В Mac и Linux консоль по умолчанию не отображается при запуске исполняемого файла (и нетразличие между GUI и консольными исполняемыми файлами);если вы запускаете его в терминале, приложение не имеет большого контроля над ним (если оно не использует escape-коды, но они должны управлять форматированием / позиционированием текста).Вы можете использовать некоторую эвристику, чтобы угадать используемый эмулятор терминала и сказать ему, чтобы он скрывался, но это уродливо, громоздко и, опять-таки, отрицательно сказывается на назначении консольного приложения.
Что касается вашего фрагмента кода, вынельзя поместить это #include
в тело функции: вы должны разбить этот материал на две части:
В верхней части файла:
#ifdef __WIN32__
#define _WIN32_WINNT 0x0500
#include <windows.h>
#endif
внутри тела функции:
#ifdef __WIN32__
ShowWindow(GetConsoleWindow(), SW_HIDE);
#endif