7

コマンドラインを使用してMinGW + MSysで簡単なWin32 GUIプログラムをコンパイルして実行すると:

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

コンソールボックスを外すにはどうすればいいですか?

4

1 に答える 1

16

それをプロジェクトに入れます。プロジェクト設定には、コンソール ウィンドウを表示しないオプションがあります。

プロジェクトに含めるのが面倒な場合は、 を呼び出すとShowWindow (GetConsoleWindow(), SW_HIDE);、画面上で点滅してから消えます。#define _WIN32_WINNTにアクセスするには、windows.h をインクルードする前に、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
}

編集:見つかりました。コンソール ウィンドウを表示しない方法は次のとおりです。

  1. [CodeBlocks] メニューの [プロジェクト] をクリックします。
  2. [プロパティ] をクリックします。
  3. 2 番目のタブ、[ビルド ターゲット] をクリックします。
  4. 右側の Type: Console application と表示されている箇所を、GUI application に変更します。
  5. プロジェクトを再構築します。
于 2012-04-04T01:38:47.857 に答える