2012-04-04 13 views
6

でコンパイルして実行するGUIプログラムのコンソールボックスの乗車を取得する方法:私は、コマンドラインでのMinGW +のMSysで、単純なWin32のGUIプログラムをコンパイルテストする場合はMinGW +コード::ブロック

を$ G ++メイン。 CPP -oアプリ-std = C++ 0xの

$ ./app

のみ]ダイアログボックスを示しています。しかし、このプログラムをCode :: Block IDEに入れてコンパイルしてください。リンクオプションに-mwindowsを追加しても効果はありません。

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

このブログ記事の著者が使用したオプションを試しましたか? [ビルドオプション]> [その他のオプション]の[-Wl、 - subsystem、windows] - http://phrasz.blogspot.com.au/2011/05/codeblocks-disable-console-window.html – charlemagne

+0

'-Wl、 - -subsystem、WindowsはコードブロックIDEで動作しません。コンパイラオプションとリンカオプションの両方に追加すると、コンソールボックスが表示されます。 – bo0k

+0

@ bo0k、私はそれが長いことを知っていますが、これを忘れてしまった場合は、私が試したリンカオプションが機能していなかったので、プロジェクトなしでこれを行う方法があるかどうかを尋ねました。 '-Wl、 - subsystem、windows 'の「問題」は、IDEの中だけでは動かないということです。エクスプローラから実行すると、コンソールウィンドウは表示されません。私はちょうどあなたが知りたいと思ったと思った。 – chris

答えて

11

main.cppには、プロジェクトでそれを入れて、プロジェクトの設定でコンソールウィンドウを持たないようにするオプションがあります。

プロジェクトでそれを持つことができない場合、ShowWindow (GetConsoleWindow(), SW_HIDE);を呼び出すと、画面上で点滅して消えます。 GetConsoleWindow()にアクセスするためにwindows.hを含める前に、#define _WIN32_WINNT0x0500以上にする必要があります。私はそれを無効にする特定の場所で少し戻ってきます。

//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: はそれを見つけ、ここでコンソールウィンドウを持たない方法は次のとおりです。コードブロックメニューの

  1. クリックしてプロジェクト。
  2. [プロパティ]をクリックします。
  3. 2番目のタブ[ビルドターゲット]をクリックします。
  4. 右側の「タイプ:コンソールアプリケーション」で、GUIアプリケーションに変更します。
  5. プロジェクトを再構築します。
+1

コードブロックのどのオプションですか?私はコマンドラインを使用しています。私はcodeblockは、いくつかのコンパイルやリンクのオプションをコンソールを表示させるために追加する必要がありますが、私はコマンドコードブロックを実行する方法を見つけることはありません。 – bo0k

+0

ありがとう、私はthats正しい方法だと思う! – bo0k

+0

C:B固有のコマンドラインビルドオプションについてはわかりません。私はこの方法はGUIで動作する知っている。 – chris

関連する問題