7

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

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

$ 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;
}

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

  • Error: User Rate Limit Exceeded

    от
  • Error: User Rate Limit Exceeded

    от
  • Error: User Rate Limit Exceeded

    от bo0k
  • Error: User Rate Limit Exceeded

    от bo0k
  • Вы пробовали варианты, использованные автором этого блога? В разделе Параметры сборки & gt; Другие опции, которые они имеют "-Wl, - подсистема, окна"; -phrasz.blogspot.com.au/2011/05/…

    от charlemagne
  • & APOS; -Wl, - подсистема, окно & APOS; не работает в IDE кодоблока, я добавляю его в опции компилятора и компоновщика, покажи мне окно консоли.

    от bo0k
  • @ bo0k, я знаю, что это было давно, но если вы просто забыли об этом, я просто спросил, есть ли способ сделать это без проекта, так как опции компоновщика, которые я пробовал, не работали, и «проблема»; с-Wl,--subsystem,windows в том, что он не работаетinside IDE. Если вы запустите его из проводника, у него не будет консольного окна. Я просто подумал, что ты хотел бы знать.

    от chris
  • 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.