パッケージと DLL の作成
アプリケーション、コンポーネント、ライブラリの構築:インデックス への移動
ダイナミック リンク ライブラリ(DLL)は、コンパイル済みのコードのモジュールで、実行可能ファイルと共に動作し、アプリケーションに機能を提供します。 ダイナミック リンク ライブラリには典型的な 2 種類の使い方があります。 1 つ目は、サード パーティ(Microsoft など)が作成した外部 DLL のリポジトリを使うためです。 2 つ目は、プログラム間や別のプログラミング言語で記述した別のアプリケーションとの間で共有したい、独自の DLL を作成するためです。 サード パーティの DLL を RAD Studio で使用する一例に、Delphi で使用している Microsoft Windows インターフェイスがあります。
RAD Studio 用にインストールされているソースを見てみましょう。
C:\Program Files (x86)\Embarcadero\Studio\23.0/source/Win32/rtl/win/
WinInet.pas ファイルで次の行を探します。
winetdll = 'wininet.dll';
この定義の後に、この DLL 内の手続きに対する参照がいくつか含まれています。
function CommitUrlCacheEntry; external winetdll name 'CommitUrlCacheEntryW'; function CommitUrlCacheEntryA; external winetdll name 'CommitUrlCacheEntryA'; function CommitUrlCacheEntryW; external winetdll name 'CommitUrlCacheEntryW';
CommitUrlCacheEntry は、最初の手続きを参照するために RAD Studio が使用する名前です。 CommitUrlCacheEntryW は、wininet.dll 内の手続きの名前です。 その後 RAD Studio は Wininet を uses 句に追加し、CommitUrlCacheEntry を使用します。 wininet.dll は、現在のディレクトリか、[環境変数]で定義されたシステム パス(PATH)になければなりません。
CommitUrlCacheEntryW という DLL のインターフェイスは、MSDN Web サイトで確認することができます。
DLL の 2 つ目の使い方は、RAD Studio 外のプログラムで使用する DLL を独自に作成することです。 次のようにして RAD Studio で新しいプロジェクトを作成します。
ファイル > 新規作成 > その他... > Delphi プロジェクト > ダイナミックリンク ライブラリ
[実行|実行時引数...]を使って DLL のコンパイルとビルドを行い、ホスト アプリケーションの実行可能ファイルを参照します。
パッケージは、Delphi アプリケーションか IDE、またはその両方で使用される、特別な DLL です。 パッケージには 2 つの種類、実行時パッケージと設計時パッケージがあります。実行時パッケージは、プログラムの実行中に、そのプログラムに機能を提供します。 設計時パッケージは、IDE の機能を拡張するためのものです。
DLL やライブラリでは、Windows ダイアログにエラーや警告が表示されないよう、すべての例外を処理する必要があります。
ライブラリ プロジェクト ファイルには次のコンパイラ指令を記述することができます。
ライブラリのコンパイラ指令: :
コンパイラ 指令 | 説明 |
---|---|
{$LIBPREFIX '文字列'}
|
指定した文字列が出力ファイル名の先頭に付け加えられます。 たとえば、設計時パッケージに {$LIBPREFIX 'dcl'} と指定することができます。あるいは {$LIBPREFIX} とすると先頭には何も付けられません。 |
{$LIBSUFFIX '文字列'}
|
指定されたサフィックスを、出力ファイル名の、$LIBVERSION 文字列(もしあれば)と拡張子の前の位置に、追加します。たとえば、{$LIBSUFFIX '-mytools'} を something.dpr に指定すると、something-mytools.bpl と生成されます。 |
{$LIBVERSION '文字列'}
|
バージョン拡張子を、出力ファイル名の、.bpl 拡張子の前の位置に追加します。たとえば、something.dpr で {$LIBVERSION '2.1.3'} と指定すると、something.2.1.3.bpl が生成されます。 |
パッケージに関する詳細については、「パッケージとコンポーネントの操作:概要」を参照してください。
トピック
- パッケージと DLL を使用する条件
- C++Builder での DLL の作成
- VCL コンポーネントを含む DLL の作成(C++)
- DLL のリンク(C++)
- RAD Studio での DLL の使用(C++)