direct graphic 9的运行时入口在文件d3d9.dll中,所以先载入此dll,代码如下:
   HMODULE hM = LoadLibrary(_T("d3d9.dll"));   // LoadLibrary是win32api

此后,d3d9.dll被载入到当前的进程里了,然后就是创建IDirect3D9*,但是,此创建函数的名称就是"Direct3DCreate9",它是个导出(export)的符号,以下面的方式获得:
   typedef IDirect3D9 * (__stdcall *D3DCREATETYPE)(UINT);
   D3DCREATETYPE d3dCreate = (D3DCREATETYPE) GetProcAddress(hM, "Direct3DCreate9");   // 已修正处

然后就像平时做的那样,传递dx9sdk版本号给它:
   if(d3dCreate==0)   {
      // error! ....
      FreeLibrary(hM);
   }
   IDirect3D9* pD3d9 = d3dCreate(D3D_SDK_VERSION);
   if(pD3d9==0) {
      // 创建失败....
      FreeLibrary(hM);
   }

然后像一般情况的使用,用于创建IDirect3DDevice9*就不细讲了。

最后,不能忘了释放工作:
   pD3d9->Release(); //先释放IDirect3D9*
   FreeLibrary(hM);