Вопрос по c++, codeblocks, mingw – Как получить консольную коробку компиляции программы GUI MinGW + Code :: Block

7

Когда я компилирую и запускаю простую программу Win32 GUI в MinGW + MSys с командной строкой:

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

$ ./app

отображается только диалоговое окно. Но когда я помещаю эту программу в Code :: Blocks IDE и компилирую ее, это всегда приводит к появлению черного окна консоли с диалоговым окном. Добавление-mwindows на параметры ссылок не влияет.

main.cpp:

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

Как мне избавиться от консоли?

& APOS; -Wl, - подсистема, окно & APOS; не работает в IDE кодоблока, я добавляю его в опции компилятора и компоновщика, покажи мне окно консоли. bo0k
Вы пробовали варианты, использованные автором этого блога? В разделе Параметры сборки & gt; Другие опции, которые они имеют "-Wl, - подсистема, окна"; -phrasz.blogspot.com.au/2011/05/… charlemagne
@ bo0k, я знаю, что это было давно, но если вы просто забыли об этом, я просто спросил, есть ли способ сделать это без проекта, так как опции компоновщика, которые я пробовал, не работали, и «проблема»; с-Wl,--subsystem,windows в том, что он не работаетinside IDE. Если вы запустите его из проводника, у него не будет консольного окна. Я просто подумал, что ты хотел бы знать. chris

Ваш Ответ

1   ответ
13

и в настройках проекта есть возможность не иметь консольного окна.

Если вы не хотите, чтобы это было в проекте, позвонитеShowWindow (GetConsoleWindow(), SW_HIDE); заставит его мигать на экране, а затем исчезнет. Обратите внимание, что вы должны#define _WIN32_WINNT как0x0500 или выше, прежде чем включать windows.h, чтобы иметь доступ к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
}

РЕДАКТИРОВАТЬ: Нашел, вот как не иметь консольного окна:

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.
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded bo0k
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded bo0k

Похожие вопросы