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);
完