簡體   English   中英

如何隱藏 Windows 程序的控制台窗口?

[英]How can one hide the console window of a Windows program?

我正在使用 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);
}

如何隱藏控制台窗口?

GUI Windows 程序使用與控制台不同的入口點函數。 您使用/SUBSYSTEM:WINDOWS是正確的,但是您需要更改為使用WinMain

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

然后使用適當的wxEntry重載:

return wxEntry(hInstance, NULL, cmdLine, nCmdShow);

我建議調用FreeConsole() 它將控制台與任何窗口分離。 作為我的應用程序的示例:

程序示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM