コンソール アプリケーション
アプリケーションの作成 への移動
コンソール アプリケーションは、ターゲット プラットフォームのコンソール ウィンドウ(グラフィカル インターフェイスなし)で動作する 32 ビット プログラムです。このアプリケーションを使用するのは、一般に必要なユーザー入力があまりなく、機能セットも限定されている場合です。ただしコンソール アプリケーションではビジュアル要素を表示できないが、コンソール アプリケーションで RTL(ランタイム ライブラリ)のすべての型と関数を使用できます。
コードに次の要素を含む、
{$APPTYPE CONSOLE}
すべてのアプリケーションでは専用のコンソール ウィンドウが開きます。
目次
Delphi コンソール アプリケーションを新規作成するには:
- [ファイル|新規作成|その他...|Delphi プロジェクト]を選択します。
- [新規作成]ダイアログ ボックスから[コンソール アプリケーション]をダブルクリックします。
指定したソース ファイル種別のプロジェクト ファイルが IDE により作成され、コード エディタが表示されます。
C++ コンソール アプリケーションを新規作成するには:
- [ファイル|新規作成|その他...|C++Builder プロジェクト]を選択し、[新規作成]ダイアログ ボックスで[コンソール アプリケーション]をダブルクリックします。[新規コンソール アプリケーション](C++)ダイアログ ボックスが開きます。
- プロジェクトのメイン モジュールに対するソースの種類(C または C++)を選択するか、[プロジェクト ソースの指定]をオンにして、
main
またはwinmain
関数を含む、作成済みのファイルを指定します。 - C++ コンソール アプリケーションでビジュアル要素を使用する場合は、[ターゲット フレームワーク]で[FireMonkey]または[ビジュアル コンポーネント ライブラリ]を選択します。コンソール アプリケーションではビジュアル要素を表示できないが、C++ コンソール アプリケーションでライブラリ(アイコン、ビットマップ、ビデオなど)からビジュアル ファイルを処理できます。たとえば、VCL を使用することをこのダイアログ ボックスで明示的に指定しない場合、作成するコンソール アプリケーションでは後から VCL クラスを使用できません。使用を試みると、リンク エラーが発生します。デフォルトのフレームワークは[なし]です。
- [OK]ボタンをクリックします。
指定したソース ファイル種別のプロジェクト ファイルが IDE により作成され、コード エディタが表示されます。
コンソール アプリケーションではすべての例外の処理が必要
コンソール アプリケーションでは、プログラムの処理範囲から外れる例外がないことを保証する必要があります。例外が処理されない場合、プログラムが終了したとき、オペレーティング システムにより、例外情報のダイアログが表示されます。
C++ コンソール アプリケーションではすべての例外を処理する必要があります。これは、コンソール アプリケーションを実行したとき、ターゲット プラットフォームで、例外のダイアログの表示を防ぐためです。詳細は、「C++Builder の例外処理」を参照してください。
たとえば、Delphi アプリケーションでは、次に示すような例外処理コードを追加する必要があります。
program ConsoleExceptionHandling;
{$APPTYPE CONSOLE}
uses
SysUtils;
procedure ExecuteProgram;
begin
// Program does something
raise Exception.Create('Unforeseen exception');
end;
begin
try
ExecuteProgram;
except
// Handle error condition
WriteLn('Program terminated due to an exception');
// Set ExitCode <> 0 to flag error condition (by convention)
ExitCode := 1;
end;
end.
コンソール アプリケーションの終了処理
次のいずれかの方法で、コンソール アプリケーションを終了できます。
- 終了([X])ボタンをクリックします。
Ctrl+C
を押します。Ctrl+Break
を押します。- ログ オフします。
これらのユーザー終了要求を処理するには、Windows API 関数 SetConsoleCtrlHandler の各オプションを使用します。ユーザーの選択した内容により、アプリケーションは強制的に終了することがあります。プロセスは正常にシャットダウンできず、終了処理部分が実行されないこともあります。