0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ビルド構成によって変数を設定する方法(プリプロセッサディレクティブを使うよ)

Last updated at Posted at 2023-07-18

概要

仕事でVisualStudioを使ってWindowsフォームアプリを作成しているのですが、ビルド構成をDebugかReleaseかで変数の値を変えて欲しいと言われました。
しかし、パッと解決法が思い付かずどうしたらいいか困ってしまったわけです…
調べた結果、プリプロセッサディレクティブを使った方法が簡単そうじゃん!と思い実装したところめちゃ簡単だったので皆さんに共有させていただきます。

プリプロセッサてそもそも何者?:thinking:

基本的なことですが、コンピュータがプログラムを実行する前に、一連の手順を踏む必要があります。「コンパイル」という過程です。
「プリプロセッサ」はこのコンパイルが行われる前に動作します。だから「プリ(前の)」と名前についています。プリプロセッサが行う作業は主に「コードの準備」なのです。

よく使われるプリプロセッサディレクティブたち

以下はよく使われるプリプロセッサディレクティブです。
これらを見た上で次の実装例を見てみましょう。

#if : 条件付きコンパイルブロックの開始を示します。
#else#if または #elif ブロックの代替ブロックを示します。
#elif#if ブロックの追加の条件を示します。
#endif : 条件付きコンパイルブロックの終了を示します。
#define : シンボルを定義します。
#undef : シンボルの定義を取り消します。

実装例

以下は簡単な実装例ですが、Debugを選択しているとmodeに「Debug Mode」が代入され、Releaseだと「Release mode」が代入されます。
また、実際に実装すると現在選択しているデバッグ構成によってどちらかが無効になります。
つまり、Debugを選択していた場合、#elseブロックは無効となりコードが灰色になります。

string mode;
#if DEBUG
    mode = "Debug mode";
#else
    mode = "Release mode";
#endif

SomeMethod(mode);

おわりに

以上がプリプロセッサディレクティブを使ったビルド構成によって変数を設定する方法です。
他の方法もありますが設定などが複雑になってくるので、必要でない限りこの方法でやった方が簡単に実装できると思います!
しかし、この方法を使う際は自分でも調べてからやってくださいね!信頼性の高い1次情報が大事です。
私の投稿は参考程度に。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?