C++ プログラムを実行したときにシェル/コマンド プロンプトが表示されないようにするためにできることはありますか? すぐに閉じるので表示されても大したことではありませんが、まったく表示されないことをお勧めします。プログラムは Windows XP/Vista/7 OS で動作します
2 に答える
プログラムを GUI アプリケーションとしてマークするように、コンパイラまたはリンカーを構成します。
Windows は、GUI とコンソールの 2 種類の主なプログラムを認識します。EXE ヘッダーがコンソール プログラムとしてマークされている場合、OS はそれを実行する前にコンソール ウィンドウを作成します。そうでなければ、そうではありません。これは、実行時に制御できるものではありません。リンク時に設定する必要があります。(実行時に呼び出しShowWindow(GetConsoelWindow(), SW_HIDE)
て制御しようとすることはできますが、ウィンドウがちらつくことを妨げません。さらに、プログラムが cmd.exe などの別のプログラムとコンソールを共有している場合は、'ユーザーのコマンド プロンプト ウィンドウを非表示にします!) プログラムに実際の GUI がない場合でも、コンソール ウィンドウが作成されないようにするために必要なモードです。
Visual Studio で新しいプロジェクトを開始する場合は、[Win32 コンソール アプリケーション] オプションを選択します。既にプロジェクトがある場合は、プロジェクトの構成プロパティで、[リンカー/システム] セクションの [サブシステム] 設定を見つけて、[コンソール] に設定します。これにより、リンカーは/subsystem:console
オプションを使用します。Mingw を使用している場合は、-Wl,--subsystem,windows
オプションを使用します。
コマンド ライン ユーティリティではなく、Windows サービスを作成したいように思えます。これがサービスが存在する理由です。ユーザーの操作を必要としない長時間実行されるバックグラウンド タスク。 ここに簡単な例があります。