Reported by Primoz Gabrijelcic; checked by Reinier Sterkenburg
再現方法:
- D5 を開始します。
- 新規コンソールアプリケーションを作成します。
- 以下のコードを貼り付けます:
program ifdefbug;
{$APPTYPE CONSOLE}
{$IFDEF NOTDEF}
{$E XXX}
{$ENDIF}
begin
end.
実行します。Delphi はプログラムを(通常通り拡張子 .exe で)コンパイルした上で、"プログラム 'X:\somepath\ifdefbug.XXX' が見つかりません。" と報告します。
まったく変です。
当然ながら、これは D4 IDE では期待通り正常に動作します。問題は、ソースコードと IDE の統合方法にあります。IDE は {$E XXX} 指令子があるというだけで、その値を プロジェクト - オプション - アプリケーション - ターゲットファイル拡張子 にセットします。この値を空に戻すことは結果としてソースファイルの変更になりますが、IFDEF がある場合にはエラーを伴う変更になってしまいます。
|