DLLとは? わかりやすく解説

DLL

フルスペル:Dynamic Link Library
読み方ディーエルエル
別名:ダイナミックリンクライブラリ共有ライブラリシェアドライブラリ
【英】Shared Library

DLLとは、動的なリンクによって利用されるライブラリのことである。Windowsでは、DLLファイル拡張子として「.dll」が付く。

DLLでは、様々なアプリケーションプログラム使用される汎用的機能モジュール化されており、実行ファイルがリンクを読み込むことによって共通して利用できるようになっている動的にリンクしていることによって、プログラム間で重複したコード共有化し、メモリ占有量やHDD読み込み時間などを削減することができる。Windowsでは、OSとしての機能多くをDLLによって提供している。

アプリケーション開発当たっては、DLLとしてすでに用意されている機能新たに開発しなくてよいので、開発効率の向上期待できる。ただしDLLを利用するためには実行プログラムとDLLをセットにして管理しなくてはならない

DLLは元々Windowsにおける用語であるが、後にUNIXなどでも同様の機能指して「DLL」や「ダイナミックリンクライブラリ」と呼ぶ場合多くなっている。UNIX系OSでは「共有ライブラリ」などと呼ばれることもある。


参照リンク
DLL とは - (Microsoft
OSのほかの用語一覧
Windows:  DCOM  DirectSound  DirectSound 3D  DLL  DSP版  DFS  DirectX

ダイナミックリンクライブラリ

(DLL から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/12/06 08:52 UTC 版)

ダイナミックリンクライブラリ
拡張子.dll
MIMEタイプPEの場合: application/vnd.microsoft.portable-executable[1]
UTIcom.microsoft.windows-dynamic-link-library
マジック
ナンバー
PEと同じ(オプション内フラグで区別)
開発者マイクロソフト
包含物共有ライブラリ

ダイナミックリンクライブラリ (Dynamic Link Library: DLL、動的リンクライブラリ) は、ソフトウェアバイナリ形態の一種。動的リンクを使ったライブラリのこと。あるいは、Windowsで使用されるファイル形式を特に意図して、この語が用いられる場合もある。

複数のプログラムから共通に利用できるように種々の機能をプログラムとは分離させた、シェアードライブラリ(共有ライブラリ)でもあることが多い。

概要

たとえば、「マウスカーソルが現在、画面上のどの座標にあるかを調べる」などという普遍性・一般性を持つ機能は、さまざまな実行プログラムアプリケーション)から参照される可能性があるが、その部分をモジュール化して、さまざまなプログラムから使えるようにすることでコードの再利用性を高め、多重開発(車輪の再発明)を防ぐことができる。このような場合に、この機能をダイナミックリンクライブラリとして実装し、アプリケーション実行プログラムの開始時に動的リンクしてから利用する方法がある。

プログラムコードを再利用する仕組みとしては、スタティックリンクライブラリを作成して静的リンクする方法が挙げられるが、ダイナミックリンクライブラリを適切に設計・利用することで、ソフトウェアの機能追加・動作変更や不具合修正などの際に、ライブラリのモジュールのみを差し替えることで対応できるなどのメリットが存在する[2]Intel IPPなどのように、実行環境のプロセッサに合わせて自動的に最適なコードを選択・実行するためにダイナミックリンクライブラリを利用している例や、NewTek LightWaveなどのように、サードパーティ製のソフトウェア部品によってエンドユーザーが本体ソフトウェアに後から自由に機能追加できるようダイナミックリンクライブラリをプラグインとして利用する設計を行なっている例もある。

Windowsにおけるダイナミックリンクライブラリのモジュールは、拡張子が「.dll」のファイルである。ActiveXコントロール(COMコンポーネントの一種)に関しては、慣例的に「.ocx」という拡張子が付けられることもある(他にも、LightWave用プラグインファイルには慣例的に「.p」の拡張子が付けられるが、Windows版におけるファイルの中身自体はWin32 DLLそのものである)。DLLは本体ソフトウェアつまり実行プログラム(「.exe」拡張子を持つモジュール)によって実行時にロードされる。Win32 APIが格納されたDLLのように高い汎用性を持つC言語形式の関数がエクスポートされたDLLのほか、Microsoft Visual C++環境専用のMFC拡張DLL、Microsoft Visual Basicなどの他言語からの利用にも対応したCOMコンポーネント、および.NET Framework環境向けのマネージコードが格納されたアセンブリなど、ひとえにDLLといってもそのモジュールの実装形態や、モジュールを利用できるプログラムには差異がある。

FM TOWNSTownsOSでは、V2.1L20以後でサポートされた。TownsOSにおけるダイナミックリンクライブラリのモジュールは、Windowsと同様に拡張子が「.dll」のファイルである[3]

Unix系OSでは /usr/lib や /lib などの下に通常置かれる、拡張子が「.so」[4]のファイルである。バージョンによる差異の吸収を目的として、拡張子が「.so.バージョン番号」というファイルを実体として作成し、バージョン共通名の「.so」をその実体へのシンボリックリンクとすることが多い。macOSでは拡張子として「.dylib」が使われる。同じUnix系OSでも、SunOS はリンク時に Shared library を指定しなくて良い(つまり、実行時まで(Shared library 内にあるとされる)関数の名前解決がされるかどうか遅延させることが可能である)が、Solaris ではリンク時に Shared library を指定することで(Shared library 内にあるとされる)関数が名前解決されるかどうかリンカがチェックできるようにする必要がある(無論、Shared library なので、リンカは関数が名前解決されるかどうかチェックするのみでリンクはしない)。

ライブラリが共有(パブリック)であることと、ダイナミックリンクであることは必ずしも一致しないので注意が必要である。ダイナミックリンクだが共有しない(特定の実行プログラムからのみ使用されるプライベートなモジュール)というライブラリもありうる。

一般には、ダイナミックリンクライブラリでも、シンボル(関数シンボル)は実行プログラムファイルの生成時(コンパイル後のリンク&ビルド処理時)に解決する(アーリーバインド)。これに対し、エンドユーザーが後からモジュールを追加できるプラグインなどでは、実行時にシンボルを解決するものもある(ディレイロード)。多くの処理系では実装上両者は同じものだが[要出典]、例えばDarwinでは明確に区別されている。

脚注

  1. ^ Andersson, Henrik (2015年4月23日). “application/vnd.microsoft.portable-executable” (英語). IANA. 2017年3月26日閲覧。
  2. ^ DLL の利点 - MSDN
  3. ^ 「INSIDE TOWNS TownsOS V2.1L20の機能 DLL活用術(前偏)」『Oh!FM TOWNS』1993年7月号、162-163頁。
  4. ^ 「so」は「Shared Object」の略。

関連項目



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

「DLL」に関係したコラム

  • CFDで自動売買するには

    CFDで自動売買するには、CFD業者の提供する取引ツールに自動売買の機能が付いていることが条件になります。2012年7月現在、自動売買の機能が付いている取引ツールを提供しているCFD業者はGCIフィナ...

  • FXのチャート分析ソフトMT4のEAの使い方

    EA(Expert Advisor)とは、FX(外国為替証拠金取引)のチャート分析ソフトMT4(Meta Trader 4)上で自動売買するためのプログラムの名称です。EAは、多くのWebサイトで公開...

  • FXのチャート分析ソフトMT4で10分足や2時間足などを表示するには

    FX(外国為替証拠金取引)のチャート分析ソフトMT4(Meta Trader 4)では、次の時間足の表示ができます。ティック1分足5分足15分足30分足1時間足4時間足日足週足MT4では、10分足や1...

辞書ショートカット

すべての辞書の索引

「DLL」の関連用語

DLLのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



DLLのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2025 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【DLL】の記事を利用しております。
拡張子辞典拡張子辞典
Copyright © 2005-2025 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【.dll】の記事を利用しております。
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのダイナミックリンクライブラリ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS