DirectXで遊ぼう | 上のページ |
DirectXに対応したセットアッププログラムを実行するには dsetup.dllが別途必要なのは当たり前の事なのですが、 もしそのセットアッププログラムを非DirectXソフトウェアにも使用したい場合にも同様にDLLが必要になってきます。
これはdsetup.libを静的リンクさせているため起きます。
ならば、dsetup.dllを動的にリンクしてしまえばいいじゃんという事で、以下のような関数を書いてみました。
#include "dsetup.h" int DynamicCall_DirectXSetup(HWND hwnd,LPSTR path,DWORD flags) { HMODULE module; LPDIRECTXSETUP func; if((module = LoadLibrary("dsetup.dll")) == NULL)return -1; if((func = (LPDIRECTXSETUP)GetProcAddress(module,"DirectXSetupA")) == NULL){ FreeLibrary(module); return -1; } int r = func(hwnd,path,flags); FreeLibrary(module); return r; }このDynamicCall_DirectXSetup関数は、内部でDirectXセットアップ関数を取得して呼び出すようになっています。
関数を使用するためには、もちろんDirectXドライバを任意のフォルダにコピーしておく必要があります。
上のページ |