※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

ラッパーDLL
このページを編集


トップページ



Contents


学校の課題の関連で、DLLを切り替えてロードしながら使用したい事態が発生した。 その際に調べたことなど、うんぬん。

ラッパーDLLについて

http://msdn.microsoft.com/library/ja/jpdnsql7/htm/btrieve5.asp?frame=true

動的なDLL読み込み

今回はラッパーを作成せず、DLLの動的切り替えで補った。 動的切り替えを行うには、

HMODULE LoadLibrary(LPCTSTR lpFileName);
FARPROC GetProcAddress(HMODULE hModule, LPCSTR lpProcName);
BOOL FreeLibrary(HMODULE hModule);

の三つの関数を用いる。

HMODULE LoadLibrary(LPCTSTR lpFileName);
lpFileNameに入ったファイル名のdllをロードする。
  成功  ライブラリアクセス用のhModule
  失敗  NULL
FARPROC GetProcAddress(HMODULE hModule, LPCSTR lpProcName);
ロードされたdllから呼び出したい関数へのアドレスを取得する。
注意点は、戻り値を受け取りたい関数の型にキャストして受け取ること。
BOOL FreeLibrary(HMODULE hModule);
dllを解放する。