LoadLibrary関数の詳細
LoadLibrary関数はWindowsオペレーティングシステムの関数で、ダイナミックリンクライブラリ(DLL)ファイルを現在のプロセスのアドレス空間にロードするために使用されます。関数のプロトタイプは次のとおりです。
HMODULE LoadLibrary(LPCTSTR lpFileName);
パラメータの説明:
- ロードするDLLのファイルパス。絶対パスまたは相対パスが使用できます。相対パスの場合、システムのデフォルト検索パスで検索されます。
returned value explanation:
- ロードが成功した場合、ロードされたDLLモジュールのハンドル(HMODULE)を返します。このハンドルは、そのモジュールに対する後続の操作(関数の呼び出しや変数の取得など)に使用できます。
- ロードに失敗した場合は NULL を返します。
LoadLibrary 関数は、DLL の読み込み時に以下の処理を実行します。
- 渡されたlpFileNameパラメータが有効かどうかを確認します。ファイルの存在、読み取り権限などを確認します。
- DLLファイルが正しいフォーマットかどうかを確認し、ファイルヘッダ、エクスポートテーブルなどをチェックする
- 実行中のプロセスアドレス空間にDLLファイルのメモリ領域を割り当て、DLLファイルのコードやデータなどの内容をそのメモリ領域に読み込む。
- DLLファイルの初期化コードを実行する(グローバル変数の初期化、スタティックコンストラクタの実行など)。
- 読み込まれたDLLモジュールのハンドルを返します。
ご留意事項
- DLLファイルをロードすると、GetProcAddress関数でDLLからエクスポートされた関数や変数のアドレスを取得して、関数ポインタやポインタ変数を使用して関数の呼び出しや変数のアクセスを行うことができます。
- DLLモジュールの使用後はFreeLibrary関数を用いてモジュールが占めているメモリ空間とリソースを解放する必要があります。