2012-05-06 18 views
7

変更されたmenus.pasがあります。試してみましたVCLソースファイル(Menus.pas)の変更を再コンパイルするには?

[DCC Fatal Error] Menus.pas(*): F2051 Unit Controls was compiled with a different version of Menus.TPopupMenu

は、プロジェクト内のすべてのDCUを削除

uses ...,Controls,...; 

コンパイラで

は致命的なエラーが発生しました。

ビルド

ビルドはすべて

は(あまりにもVCLから)dbフォルダを追加するためにつながるライブラリパスにファイルを追加しようとしたし、その後、行き止まりである

[DCC Error] jpeg.pas(872): E2065 Unsatisfied forward or external declaration: 'jpeg_save_markers'

へ。

controls.dcu(すべて3)が削除されていて、デルファイはそれらを再コンパイルするのに自動ではわからず、代わりにcontrols.dcuが見つからないことを報告しました。ここで

+0

デルファイのソースからファイルを変更した場合、特定の順序ですべてを再コンパイルする必要があります。私は決してそれを行っていません... – ComputerSaysNo

+0

したがって、Delphiのソースフォルダ内の 'Menus.pas' ?デバッグとランタイムの '* .dcu'ファイルは.. \ libディレクトリとオプションでサブディレクトリに格納されていることに注意する必要があります(現時点ではDelphi 2009のみ手作業であるため、若干異なります) – TLama

+0

また、controls.pasを持ってきますか? –

答えて

11

は、私はVCLのソースファイルへの変更を処理する方法である:

  • プロジェクト構造内のファイルのコピーを作成します。プロジェクトにファイルを追加するか、検索パスに変更されたファイルが見つかるようにしてください。
  • 変更を加えますが、実装セクションでのみ行います。変更しているユニットを使用する他のユニットを使用している場合、インターフェースセクションを変更することはできません。
  • 変更されたソースファイルの先頭にコンパイラオプションを明示的に設定します。既定のバニラプロジェクトでCTRL + O Oを押すと、既定のDelphiオプションが使用されます。

私は、最後の2つの箇条書きのうちの1つがあなたを引き上げるものだと思います。

+0

xe:CloseMenuに新しいプロシージャが追加されました。 – none

+0

@David、 '{$ MINSTACKSIZE $ 00004000}'、 '{$ MAXSTACKSIZE $ 00100000}'、 '{$ IMAGEBASE $ 00400000} 'のデフォルト値も追加しますか? J +、K +、L +、M-、N +、O +、P +、Q-、R-、S - 、T-、U-、V +、W-、X +、Y +、Z1} '(Delphi 5) - ' CTRL + OO'で生成されます。 – kobik

+1

@kobik私のユニットは '{$ R-、T-、H +、X +}'を持っています。私は自分のプロジェクトが他のすべてのオプションに合わせてオプションをコンパイルすると思う。フルサイトを追加することは害ではありません。 「{$ A +、B-、C +、D +、E-、F-、G +、H +、I +、J +、K-、L +、M-、N +、O +、P +、Q-、R-、 - 、U-、V +、W-、X +、Y +、Z1} 'である。しかし、あなたは私が思う以上のものを必要としません。 –

関連する問題