How to get ride of console box of a GUI program compile by MinGW + Code::Block
c++, codeblocks, mingw
Solution
Put it in a project, and in the project settings there's an option to not have a console window.
If you can't be bothered to have it in a project, a call to `ShowWindow (GetConsoleWindow(), SW_HIDE);` will make it flash on the screen and then disappear. Note that you must `#define _WIN32_WINNT` as `0x0500` or greater before including windows.h to have access to `GetConsoleWindow()`. I'll come back in a bit with a specific location to disable it.
//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:
- Click Project on the CodeBlocks menu.
- Click Properties.
- Click the second tab, Build Targets.
- On the right, where it says Type: Console application, change it to GUI application.
- Rebuild the project.
Problem
When I compile and run a simple Win32 GUI program in MinGW+MSys with command line: `$ g++ main.cpp -o app -std=c++0x` `$ ./app` only a dialog box shows. But when I put this program into Code::Blocks IDE and compile it, it always results in a black console box with the dialog. Adding `-mwindows` in link options no effect. main.cpp: ``` #include <windows.h> int WinMain(HINSTANCE,HINSTANCE,LPSTR,int) { MessageBox(0,"Hello, Windows","MinGW Test Program",MB_OK); return 0; } ``` How can I get rid of the console box?