【でぃーえるえる】
DLL とは?
最終更新:
💡 アプリが読み込んで使う、機能の部品
Windowsでアプリなどが読み込んで使う、関数やデータを含むライブラリ。プロセスごとの状態、読み込み時期、欠落エラーの確認を解説します。
DLLは、何のためのファイル?
アプリや別のDLLが使う関数やデータを含む部品だ。Windowsでは.dllの名前で見かける。機能を分けて再利用したり、複数のアプリで同じコードを使ったりできる。
全アプリが、同じ場所で処理する?
いつ読み込まれるの?
アプリの起動時に必要なDLLを読み込む方式と、動作中にLoadLibraryなどで読み込む方式がある。欠けたとき、起動できないのか、その機能だけ使えないのかも実装による。
DLLが見つからないというエラーが出た!
まずファイル名やエラー全文、アプリの提供元の案内を確認する。アプリの修復や、必要なランタイムの導入が案内される場合がある。原因を確かめず、検索で見つけた同名ファイルを入れないようにしよう。
対象アプリが必要な版やCPUアーキテクチャを確認する。Microsoftも、アプリの問題を直す場合は提供元の案内に従うよう説明している。単に最新の一つを入れれば、すべて解決するとは限らない。
DLLを更新したら、全部のアプリが直る?
もっと詳しく知りたい人へ
共有すると、アプリの変数も混ざる?
DLLのグローバル変数や静的変数は、通常、読み込んだプロセスごとに別です。プロセス間でデータを共有するには、共有メモリなど別の仕組みを用います。コードの再利用と、データの共有は区別します。
DLLという拡張子なら、安全な部品?
拡張子だけでは安全性は分かりません。アプリが探す場所に別のDLLを置かれると、意図しないコードを読み込むリスクがあります。必要なファイルは提供元の正規の配布や修復手順でそろえます。
まとめ:ざっくりこれだけ覚えればOK!
「DLL」って出てきたら「Windowsのアプリなどが読み込んで再利用する機能のまとまり」と思えばだいたいOK!
📖 おまけ:英語の意味
「Dynamic-Link Library」 = 動的リンクライブラリ
💬 実行ファイルへ静的に組み込む方法と区別し、アプリの起動時や動作中にライブラリを読み込んで利用します。別のDLLが利用する関数などを提供する場合もあります。