動的ライブラリ
読み:どうてきライブラリ
外語:dynamically loaded library

 ライブラリの一種で、実行時動的リンクされるために用意されるもの。
目次

概要
 動的リンクには二種類ある。
 このうち実行時動的リンクは、プログラム中で必要な時に読み込まれる。つまり、プログラマーが必要なライブラリを逐次選択する必要がある。

特徴
 共有ライブラリとは異なり、扱いは頻雑である。
 扱い方はどんなオペレーティングシステムでも大して変わらないので、一度覚えれば融通は利くが、扱いが複雑で非常に使いにくい。しかしもし指定のライブラリが環境に無い場合でも、プログラムで適切な処理ができるという利点がある。

Windows
 Microsoft Windowsの場合、次の手順を踏む。
  1. ライブラリをLoadLibrary()またはLoadLibraryEx()でオープン
  2. GetProcAddress()でライブラリ内にあるシンボルを検索
  3. その結果を、関数ポインターとして用いて関数コール
  4. 用後はFreeLibrary()する
 ライブラリの識別は、HMODULE型変数によって行なわれている。

UNIX/Linux
 Linuxの場合、次の手順を踏む。Linuxも*BSDも、Solarisの仕様に準拠して実装されている。
  1. ライブラリをdlopen()でオープン
  2. dlsym()でライブラリ内にあるシンボルを検索
  3. その結果を、関数ポインターとして用いて関数コール
  4. 用後はdlclose()する
 ライブラリの識別はWindowsと同様ハンドルで行なうが、その型はvoid *である。
 djb教を信仰する人や、潔癖な人は、やはりWindowsと同様のものを定義して使うべきであろうか。

再検索