1. ホーム
  2. ウィンドウズ

[解決済み】DLLファイルとは一体何ですか?

2022-04-02 05:37:36

質問

DLLファイルは具体的にどのように動作するのですか?非常に多くのDLLがあるようですが、それらが何であり、どのように動作するのかわかりません。

で、どうするんだ?

解決方法は?

DLLとは何ですか?

DLL(Dynamic Link Libraries)はEXEに似ていますが、直接実行することはできません。 Linux/Unixの.soファイルに似ています。 つまり、DLLはMSによる共有ライブラリの実装なのです。

DLLは、ファイル形式そのものがEXEと同じと言えるほど、EXEと似ています。 EXEもDLLもPE(Portable Executable)ファイル形式がベースになっています。 DLL には、COM コンポーネントや .NET ライブラリを含めることもできます。

DLLには何が入っているのですか?

DLL には、EXE や他の DLL が使用する関数、クラス、変数、UI、リソース (アイコン、画像、ファイルなど) が含まれています。

ライブラリの種類

事実上すべてのオペレーティング・システムでは、2種類のライブラリが存在します。 スタティック・ライブラリとダイナミック・ライブラリです。 Windowsでは、ファイルの拡張子は次のとおりです。スタティック・ライブラリ(.lib)とダイナミック・ライブラリ(.dll)です。 主な違いは、静的ライブラリはコンパイル時に実行ファイルにリンクされるのに対し、動的リンクライブラリは実行時までリンクされないことです。

スタティック・ライブラリとダイナミック・ライブラリの詳細はこちら

静的ライブラリは、モジュール(EXEまたはDLL)の内部に直接埋め込まれるため、通常、コンピュータ上で静的ライブラリを目にすることはありませんが。 ダイナミック・ライブラリは、スタンドアロン・ファイルです。

DLLはいつでも変更でき、EXEが明示的にDLLをロードしたときのみ、実行時にロードされます。 静的ライブラリは、EXE 内で一度コンパイルされると変更することができません。 DLL は、EXE 自体を更新することなく、個別に更新することができます。

DLLを読み込む。

プログラムは、起動時、Win32 API の LoadLibrary を介して、または他の DLL の依存関係にある場合に DLL をロードします。 関数を読み込むにはGetProcAddressを、リソースを読み込むにはLoadResourceを使用します。

さらに読む

ご確認ください MSDN または ウィキペディア をご覧ください。 この回答の出典も。