当我使用命令行在MinGW + MSys中编译并运行一个简单的Win32 GUI程序时:
$ g++ main.cpp -o app -std=c++0x
$ ./app
只显示一个对话框。但是当我将这个程序放入Code :: Blocks IDE并进行编译时,它总是会产生一个带有对话框的黑色控制台框。在链接选项中添加-mwindows
无效。
main.cpp中:
#include <windows.h>
int WinMain(HINSTANCE,HINSTANCE,LPSTR,int)
{
MessageBox(0,"Hello, Windows","MinGW Test Program",MB_OK);
return 0;
}
如何摆脱控制台盒?
答案 0 :(得分:13)
将它放在一个项目中,在项目设置中有一个没有控制台窗口的选项。
如果您无法在项目中使用它,则拨打ShowWindow (GetConsoleWindow(), SW_HIDE);
会使其在屏幕上闪烁然后消失。请注意,在包含windows.h以访问#define _WIN32_WINNT
之前,您必须0x0500
为GetConsoleWindow()
或更高版本。我会稍微回过头来查看具体位置。
//hide console window at start
#define _WIN32_WINNT 0x0501 //this is for XP
#include <windows.h>
int main()
{
ShowWindow (GetConsoleWindow(), SW_HIDE);
//rest of program here
}
编辑: 找到它,这里是如何没有控制台窗口: