如何通过MinGW + Code :: Block编译GUI程序的控制台盒

时间:2012-04-04 01:24:58

标签: c++ mingw codeblocks

当我使用命令行在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;
}

如何摆脱控制台盒?

1 个答案:

答案 0 :(得分:13)

将它放在一个项目中,在项目设置中有一个没有控制台窗口的选项。

如果您无法在项目中使用它,则拨打ShowWindow (GetConsoleWindow(), SW_HIDE);会使其在屏幕上闪烁然后消失。请注意,在包含windows.h以访问#define _WIN32_WINNT之前,您必须0x0500GetConsoleWindow()或更高版本。我会稍微回过头来查看具体位置。

//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
}

编辑: 找到它,这里是如何没有控制台窗口:

  1. 单击CodeBlocks菜单上的Project。
  2. 单击“属性”。
  3. 单击第二个选项卡Build Targets。
  4. 在右侧,显示类型:控制台应用程序,将其更改为GUI应用程序。
  5. 重建项目。