7

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

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

$ ./app

只显示一个对话框。但是当我将这个程序放入 Code::Blocks IDE 并编译它时,它总是会导致一个带有对话框的黑色控制台框。添加-mwindows链接选项无效。

主.cpp:

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

我怎样才能摆脱控制台?

4

1 回答 1

16

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

如果您不介意将它放在项目中,调用ShowWindow (GetConsoleWindow(), SW_HIDE);会使它在屏幕上闪烁然后消失。请注意,您必须在包含 windows.h 之前使用#define _WIN32_WINNTas0x0500或更高版本才能访问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
}

EDIT: Found it, here's how to not have a console window:

  1. Click Project on the CodeBlocks menu.
  2. Click Properties.
  3. Click the second tab, Build Targets.
  4. On the right, where it says Type: Console application, change it to GUI application.
  5. Rebuild the project.
于 2012-04-04T01:38:47.857 回答