これは別のDelphiバージョンの質問に関連していますが、それでも異なります。
コードをコンパイルしているDelphiコンパイラのサービスパック(またはビルド番号)を検出する方法を探しています。jedi.incは素晴らしいですが、正確なバージョンはわかりません。(SUPPORTS_ *の定義もバージョンに関連しているため、そこでは使用できません)
古いバージョン(この場合はDelphi 2009の_ValLongバグ)にいくつかのバグがあり、後のサービスパック(この場合はDelphi 2009サービスパック3)で修正されているため、これが必要です。
現在、コードには次のようなあらゆる種類のチェックがあります。
{$ IFDEF BUG_QC_68123}
しかし、メインのインクルードファイルでこれを言うことはできません:
{$IFDEF DELPHI2009_UP}
{$DEFINE BUG_QC_68123}
{$ENDIF}
...これは、D2009SP3以降にこのバグがないという事実を見逃してしまうためです。
何か案は?
PS:これはおそらく古い(そして新しい)バージョンのDelphiにも当てはまるので、ライブラリやコンポーネントのベンダーなら誰でもこれに関心があると思います。