2009-04-22 27 views
6

Delphi 2006からDelphi 2009への移行に問題があります.JVCLを使用するプロジェクトでは、jvconsts.resが存在しないとの文句を言います。ファイルは確かにそこにあります。プロジェクトの検索パスには、ファイルが置かれているディレクトリが含まれます。 「Delphi 2009のバグ? - > * .resがプロジェクト検索パスに見つかりません(Delphi 2006で動作します)

...リンカ検索用:

をしかしDelphi Helpが言うように、ファイルが見つかりする必要があります(それはよりポータブルにするために、私は私のグローバル検索パスにJVCLを持っていないことに注意してください) .RES ディレクトリプロジェクトのディレクトリ/条件ページ の検索パス入力ボックス で指定 内のファイル[...] | [オプション]ダイアログボックス」

これはJVCLの問題ではありません。最小限のプログラムがこれを示しています:

このディレクトリ構造を想像してみて:ここで

C:\Test\ResTest.dpr 
C:\Test\Res\Test.res 

はResTest.dprです:

program ResTest; 

{$R test.res} // not found even if "c:\Test\Res" is in project search path 

begin 
end. 

これは私が見つけたいくつかの検索、道の後デルファイ2009 にデルファイ2006年の罰金コンパイルではなく、 Delphiにファイルがどこにあるかを伝える:コマンドラインコンパイラを使ったゴブ検索パスまたは-Rパラメータ。

私がこれを書いている時点で、私は近い本当の問題に来る:

-I"c:\Test\Res" 
-U"c:\Test\Res" 
-R"c:\Test\Res" 

Basiclyのそれのコピー3コマンドへのプロジェクトの検索パスから値:デルファイ2006年の.cfg-ファイルの行を含んでいます-Rパラメータが正しい値を持つようにします。デルファイ2009年

(私は「デバッグ」にコンパイラの出力の冗長性を設定する)私はIDEからの結果のコマンドラインを取得:

ディレクトリ(C:\テスト\ RES)の場合に含まれていますプロジェクトの検索パス:ここに見ることが

dcc32.exe --no-config -M -Q -ID:\Sources\Temp\1\Res;"c:\program files\codegear\rad studio\6.0\Lib" -LE"C:\Users\Public\Documents\RAD Studio\6.0\Bpl" -LN"C:\Users\Public\Documents\RAD Studio\6.0\Dcp" -O"c:\program files\codegear\rad studio\6.0\Lib" -R"c:\program files\codegear\rad studio\6.0\Lib" -UD:\Sources\Temp\1\Res;"c:\program files\codegear\rad studio\6.0\Lib" -K00400000 ResTest.dpr 

ディレクトリがグローバル検索パスに含まれている場合

dcc32.exe --no-config -M -Q -ID:\Sources\Temp\1\Res;"c:\program files\codegear\rad studio\6.0\Lib";D:\Sources\Temp\1\Res -LE"C:\Users\Public\Documents\RAD Studio\6.0\Bpl" -LN"C:\Users\Public\Documents\RAD Studio\6.0\Dcp" -O"c:\program files\codegear\rad studio\6.0\Lib";D:\Sources\Temp\1\Res -R"c:\program files\codegear\rad studio\6.0\Lib";D:\Sources\Temp\1\Res -UD:\Sources\Temp\1\Res;"c:\program files\codegear\rad studio\6.0\Lib";D:\Sources\Temp\1\Res -K00400000 ResTest.dpr 

多分そのハード:違いは、-Rパラメータである:

Local Search Path -> -R"c:\program files\codegear\rad studio\6.0\Lib" 
Global Search Path -> -R"c:\program files\codegear\rad studio\6.0\Lib";D:\Sources\Temp\1\Res 

なぜそれがうまくいかないのは不思議ではありません。 Delphi 2009では、ローカル検索パスが-Rパラメータに追加されません。

これは明らかにバグですが、他に誰もこの問題がないようです。私は使用しているすべてのマシンでそれを再現することができます。たぶんエラーはDelphi 2009のドイツ語版にのみ存在しますか?

答えて

2

この問題を回避するには、代わりにあなたのコードでこれを置くことです:

IDEとコマンドラインコンパイラの両方で、デルファイ2009年に私のシステム上で動作します
{$R res\test.res} 

既存の機能が壊れていることに同意します.Qual Portalにレポートを追加しましたか?そうでない場合は、次のようにしてください:ttps://quality.embarcadero.com(これは、http://qc.embarcadero.comのインデックスを付けられた検索エンジンであったが、これはシャットダウンされていた; https://quality.embarcadero.comは検索のために無料のアカウントが必要)。

+0

これは私たちのコードで動作しますが、私が実際に避けたいthirdpartyコード(JVCL)を変更する必要があります。 –

+0

このバグのためにQualityCentralにエントリを作成しました。#73249 –

+2

サードパーティのコードを変更したくないという事実に同意します。 レポートのThx。 私はちょうどhttp://qc.codegear.com/wc/qcmain.aspx?d=73249をチェックし、いくつかのレポートフィールドを修正して、CodeGearのQ&Aチームが内部システムでそれを見るように昇格しました –

関連する問題