ダイナミックリンクライブラリ
テンプレート:Infobox file format ダイナミックリンクライブラリ (Dynamic Link Library,DLL、動的リンクライブラリ)は、ソフトウェアの一種。動的リンクを使ったライブラリのこと。
複数のプログラムから共通に利用できるように種々の機能をプログラムとは分離させた、シェアードライブラリ(共有ライブラリ)でもあることが多い。
たとえば、「マウスカーソルが今画面のどこにあるかを調べる」などという機能は、さまざまなプログラム(アプリケーション)から参照される可能性があるので、その部分をモジュール化して、さまざまなプログラムが使えるようにしたほうがよい。このような場合に、この機能をダイナミックリンクライブラリとして実装する。
Windowsでは、拡張子が「.dll」のファイルである。Unix系OSでは /usr/lib や /lib などの下に通常置かれる、拡張子が「.so」[1]のファイルである。バージョンによる差異の吸収を目的として、拡張子が「.so.バージョン番号」というファイルを実体として作成し、バージョン共通名の「.so」をその実体へのシンボリックリンクとすることが多い。
個人がフリーソフトなどを作成する際に、作りやすくするために作成して無料で提供されるものもある。
ライブラリが共有である事とダイナミックである事は必ずしも一致しないので注意が必要である。ダイナミックリンクだが共有しないというライブラリもありうる。
一般には、ダイナミックリンクライブラリでも、シンボルは実行ファイルの生成時に解決する。これに対しプラグインなどでは、実行時にシンボルを解決するものもある。多くの処理系では実装上両者は同じものだが、例えばDarwinでは明確に区別されている。
脚注
- ↑ 「so」は「Shared Object」の略。