コンパイルオプションの{$IF DEFINED(CLR)}の意味は?

解決


takana  2023-03-03 23:47:27  No: 150856  IP: 192.*.*.*

delphi 10.4を使用していて
ソースの中に出てくる
{$IF DEFINED(CLR)}
{$IFDEF CLR}
の意味は何でしょうか?

編集 削除
Mr.XRAY  2023-03-05 12:02:06  No: 150861  IP: 192.*.*.*

Delphi では, { } で括った中野テキストはコメントになりますが,
{$ } はコンパイル指令,あるいはコンパイラ指令と言って,コンパイル時の条件判定に使用します.

{$IF DEFINED(CLR)} は,CLR ( Common Language Runtime ) を使用するのてであれば,
{$IFDEF CLR} までの間のコードをコンパイルして実行せよ.と言う指令です.

条件付きコンパイル(Delphi)
https://docwiki.embarcadero.com/RADStudio/Sydney/ja/%E6%9D%A1%E4%BB%B6%E4%BB%98%E3%81%8D%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB%EF%BC%88Delphi%EF%BC%89

IF 指令(Delphi)
https://docwiki.embarcadero.com/RADStudio/Alexandria/ja/IF_%E6%8C%87%E4%BB%A4%EF%BC%88Delphi%EF%BC%89

共通言語ランタイム (CLR) の概要
https://learn.microsoft.com/ja-jp/dotnet/standard/clr

編集 削除
Mr.XRAY  2023-03-05 12:03:29  No: 150862  IP: 192.*.*.*

> を使用するのてであれば

を使用しているアプリならば・・・, かな ?

編集 削除
Mr.XRAY  2023-03-05 12:11:54  No: 150863  IP: 192.*.*.*

いや,Delphi 8 か Delphi Prism だったら,かも知れません.

ゴメン.他の方のレスを期待してください.

編集 削除
HFUKUSHI  2023-03-06 06:26:36  No: 150868  IP: 192.*.*.*

CLRは.NET版のDelphi用の定義ですね。現行のバージョンではCLRは常に未定義なので、{$IF DEFINED(CLR)}から{$IFEND}の間、{$IFDEF CLR}から{$ENDIF}の間は無視してOKです。

編集 削除
takana  2023-03-06 12:12:06  No: 150873  IP: 192.*.*.*

回答ありがとうございました。
良くわかりました。

編集 削除