2024/04/24「多機能ファイラーAs/Rの魅力と活用法」を出版、KView32公開

条件コンパイルによる複数の実行ファイルの作成(C++Builder)

C++Builder

プロジェクト名の変更で、ベースのプロジェクトから別のプロジェクトを作成する方法を説明しました。C++Builderでは、このように同一のソースファイルを用いて複数のプロジェクトを同じフォルダ上に作成することができます。その事を利用して、同一のソースファイルから、条件を変えて複数の実行ファイルを作成する事ができます。同一ファイルから複数の実行ファイルを作成できない、開発環境もあります。Arduino(PlatformIO)等もできません。

あまり現実的ではありませんが例えば、3つの画像処理アプリケーションを作成するとします。

最初に、Bitmap対応のアプリケーションを作成したとします。そのアプリケーションをベースに、一つは、Jpeg専用アプリ、もう一つはPNG専用アプリを作成する場合を考えてみましょう。

プロジェクト名条件定義対応する画像フォーマット
app1FOR_APP1Bimap対応
app2FOR_APP2Jpeg対応
app3FOR_APP3PNG対応

プロジェクトの作成・追加

最初に、プロジェクト名の変更で説明した方法で、app1プロジェクトから、app2, app3というプロジェクトファイルを作成します。

これで、以下の3個のプロジェクトが作成できます。

  • app1
  • app2
  • app3

条件定義の追加

次に各プロジェクトに、条件定義を追加しましょう。

プロジェクトのオプション設定ダイアログの表示

メニューの「プロジェクト」→「オプション」で、プロジェクトのオプション設定ダイアログを表示します。

条件定義の追加

「ビルド」→「C++(共通オプション)」→「条件定義」で、「…」ボタンをクリックします。

「条件定義」設定ダイアログが表示されるので、

  1. 条件定義の入力
  2. 「追加」ボタンをクリック
  3. 「OK」ボタンをクリック

で、「条件定義」を追加する事が出来ます。

C++での「条件定義」の使用方法

C++での、強健定義を使用した条件コンパイルの記述方法について以下に説明します。

#ifdef と #ifndefの使用例

#ifdef と #ifndefの使用例です。

#ifdef FOR_APP1
	// FOR_APP1用のコードの記述
#endif 

#ifndef FOR_APP1
	// FOR_APP1以外のコードの記述
#endif 


#ifdef FOR_APP2
	// FOR_APP2用のコードの記述
#endif 

#ifdef FOR_APP3
	// FOR_APP3用のコードの記述
#endif 

if、#elif、#else、#endifの使用例

if、#elif、#else、#endifの使用例です。

#if   defined (FOR_APP1)
	// FOR_APP1用のコードの記述

#elif defined (FOR_APP2)
	// FOR_APP2用のコードの記述

#elif defined (FOR_APP3)
	// FOR_APP3用のコードの記述
#esle
	// 念の為

#endif

&& , || の使用例

&& や || を使用して、以下の様な記述も可能です。

#if defined(FOR_APP1) && !defined(FOR_APP2)
    // コードの記述
#endif

#if defined(FOR_APP1) || defined(FOR_APP2)
    // コードの記述
#endif
タイトルとURLをコピーしました