パッケージと DLL の作成

提供: RAD Studio
移動先: 案内検索

アプリケーション、コンポーネント、ライブラリの構築:インデックス への移動

ダイナミック リンク ライブラリ(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 サイトで確認することができます。

WinINet Functions (MSDN)

DLL の 2 つ目の使い方は、RAD Studio 外のプログラムで使用する DLL を独自に作成することです。 次のようにして RAD Studio で新しいプロジェクトを作成します。

ファイル > 新規作成 > その他... > Delphi プロジェクト > ダイナミックリンク ライブラリ

ファイル > 新規作成 > その他... > C++Builder プロジェクト > ダイナミックリンク ライブラリ

[実行|実行時引数...]を使って 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 が生成されます。

パッケージに関する詳細については、「パッケージとコンポーネントの操作:概要」を参照してください。

ヒント: libsuffix 値を更新せずにパッケージを新しいリリースにアップグレードするには、$LIBSUFFIX AUTO オプションを使用します。詳細については、「ライブラリまたは共有オブジェクト向けのコンパイラ指令」を参照してください。

トピック

関連項目