読者です 読者をやめる 読者になる 読者になる

DLLまとめ 04 明示的読み込み

DLLの簡単なまとめです。
DLLの明示的な読み込みについて


明示的な読み込み

まず、LoadLibrary()またはLoadLibraryEx()でDLLをプロセスのアドレス空間マッピングします。
このときのDLLの検索方法は、特に指定がなければ暗黙的な呼び出しのときと同じです。
次に、GetProcAddress()で関数へのポインタを取得します。
最後に、FreeLibrary()でDLLをアンロードします。

typedef void (*LPFUNC)();

int main()
{
	HMODULE hDLL = LoadLibraryA("myDLL.dll");
	if(!hDLL) error();

	LPFUNC ptest = (LPFUNC)GetProcAddress(hDLL, "test"); //defファイルで名前をtestにしたとする
	if (!ptest) error();

	ptest();

	FreeLibrary(hDLL);