DirectXで遊ぼう 上のページ

DirectXSetupを動的呼び出しにする
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ドライバを任意のフォルダにコピーしておく必要があります。



上のページ