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

bo0*_*o0k 7 c++ mingw codeblocks

当我使用命令行测试在MinGW + MSys中编译一个简单的Win32 GUI程序并运行它:

$ g ++ main.cpp -o app -std = c ++ 0x

$ ./app

只显示一个对话框.但是把这个程序放到Code :: Block IDE中并编译它,它带有一个带有对话框的黑色控制台盒.在链接选项中添加-mwindows无效.

main.cpp中

#include <windows.h>
int WinMain(HINSTANCE,HINSTANCE,LPSTR,int)
{
    MessageBox(0,"Hello, Windows","MinGW Test Program",MB_OK);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

chr*_*ris 15

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

如果您无法在项目中使用它,则通话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
}
Run Code Online (Sandbox Code Playgroud)

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

  1. 单击CodeBlocks菜单上的项目.
  2. 单击属性.
  3. 单击第二个选项卡Build Targets.
  4. 在右侧,它显示Type:Console application,将其更改为GUI应用程序.
  5. 重建项目.