在MinGW编译器中,-mwindows命令是什么,它有什么作用?

Kal*_*fer 4 c++ cmd mingw compilation

我遇到了一个 C++ 程序的问题,当我运行 .exe 时,程序会运行,我的程序窗口会打开,但控制台会在后台在桌面上打开。我进行了谷歌搜索,发现使用 -mwindows 命令作为参数进行编译会删除控制台。它做到了。但我不确定它实际上做了什么,我很好奇。

rub*_*nvb 5

它的行为与MSDN 上描述/subsystem:windows开关完全相同。

基本上,它将入口点设置为WinMain(or wWinMain) 而不是main(or wmain),这会导致没有控制台窗口和一些 Win32 启动代码运行以创建传递给WinMain. 正如 Neil 所说,它不会阻止或启用您没有它就无法完成的任何事情。

类似的切换是-municodemain/WinMainwmain/之间切换wWinMain,这不是 Microsoft 工具所反映的。这些似乎会自动选择您使用的那个)。