2

.NETのバックグラウンドから来て、現在Delphiで動作しています。.NETでは、以前は、多くのクラスが個別のファイルに分割された個別のライブラリプロジェクトがありました。このプロジェクトをコンパイルすると、1つのDLLファイルが得られました。

ただし、Delphiではそれを行うことができません。私には多くのクラスがあり、それぞれが独自のユニット名を持つ独自のファイルにあります(同じユニット名を持つ複数のファイルを持つ方法は見つかりませんでした)。プロジェクトをコンパイルすると、プロジェクトのユニットごとに1つのDCUファイル(これは.NET DLLと同等だと思いますか?)があります。

問題は、それほど多くのファイルを持ちたくないということです。個別のユニットにあるすべてのクラスに対して、1つのDCUファイルのみを作成したいと思います。私がやりたいことを達成する方法はありますか?これらのDCUをどのように処理しますか?

4

2 に答える 2

14

.DCU(Delphiコンパイル済みユニット)ファイルは、ソース(テキスト)のコンパイルと実行可能ファイルのリンクの間で使用されるバイナリファイルです。これらはコンパイラによって作成され、メモリ内で結合され、スタートアップコードと組み合わされ、リンカによって実際の実行可能ファイル(.EXE / .DLL / .BPL)に配置されます。

.DCUファイルは.DLL(ダイナミックリンクライブラリ)ファイルではありませんが、Delphiは1つ以上の.dcuファイルを組み合わせてにリンクすることができます.DLL

.dcuほとんどの場合、ファイルの数は無意味です。気にする必要があるのは.pasソースファイルであり、作成するソースユニットごとに1つあります。ソースファイルが変更された場合は必要に応じて再作成され、リンク速度のためにソースが変更されていない場合はコンパイル済みの状態で使用されます。uses句には、.dcuファイルごとに常に1つのファイルがあり、さらに、コンパイルされる独自のソース用に1つのファイルがあります。.pas

IDEのコンポーネントパレットにコンポーネントをインストールすると、.dcuは.BPL特殊なタイプのDLLである(Borland Package Library)に配置されます。次に、そのBPLまたはパッケージファイルが実行コードとしてIDEにロードされます。これは、設計時にボタンがフォームに視覚的に表示される方法です。BPLで実行されるコードは、実際にボタンを作成し、フォームエディターで表示および操作できるようにします。

実行可能ファイルをビルドするとき(およびランタイムパッケージを使用しないとき)、DCUファイルはアプリケーションにリンクされ、実行可能ファイル(.EXE)ファイルが作成されると、元の.pasファイル.dcuも必要なくなります。(つまり、実行可能ファイルに変更を加える必要があります。その場合、.pasファイルが変更され、コンパイラーが新しい.dcuを作成し、リンカーがそれらを組み合わせて新しい.exeを作成します。)

于 2012-11-08T20:49:50.033 に答える
2

.DCUファイルは、開発プロセス中に使用される中間ファイルです。

.DCUファイルは、最終的な実行可能.EXEファイルと一緒に出荷されません

はい、Delphiで.DLLを作成し、(Delphi製の).EXEで使用させることができます。通常のC/C ++ .EXEでも、特定の規則に従っている場合はDelphi.DLLを使用できます。

プロシージャ/クラスのコレクションをライブラリに送信する場合は、.DLLまたは(よりDelphiネイティブの).BPLを作成できます。

.PASファイルが変更および再コンパイルされるたびに、対応する.DCUファイルも再構築されます。

特定の開発環境では、開発者がソースコードを開示したくない場合、ソース.PASファイルの代わりに.DCUファイルが開発者に提供されます。

于 2012-11-09T00:23:58.673 に答える