Как можно скрыть окно консоли программы Windows? - PullRequest
0 голосов
/ 30 марта 2020

Я использую фреймворк wxWidget. Когда я установлю System/Subsystem: Console (/SUBSYSTEM:CONSOLE), тогда моя программа запустится, но покажет и GUI, и консоль. Вот как это выглядит: https://i.stack.imgur.com/G83PR.png

Когда я изменяю System/Subsystem: Windows (/SUBSYSTEM:WINDOWS), отображаются ошибки:

неразрешенный внешний символ LNK2019 _WinMain@16 ссылка на функция "int __cdecl invoke_main (void)" (? invoke_main @@ YAHXZ)

Это мой код:

int main(int argc, char** argv) {
    Gui_AutoPokemon* gui = new Gui_AutoPokemon();
    wxApp::SetInstance(gui);

    mainArgc = argc;
    mainArgv = argv;

    return wxEntry(argc, argv);
}

Как скрыть окно консоли?

Ответы [ 2 ]

4 голосов
/ 30 марта 2020

GUI Windows программы используют функцию точки входа, отличную от консоли. Вы вправе использовать /SUBSYSTEM:WINDOWS, но тогда вам нужно перейти на использование WinMain:

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR cmdLine, int nCmdShow) {
    ....

Затем используйте соответствующую перегрузку wxEntry:

return wxEntry(hInstance, NULL, cmdLine, nCmdShow);
0 голосов
/ 30 марта 2020

Предлагаю позвонить FreeConsole(). Отсоединяет консоль от любого окна. В качестве примера для моей заявки:

example of a program

...