最近正在学习DirectX编程,在Windows2003系统开发的程序能正常运行,但是拿到Win7机器上后就出现问题,请高手给指点一下好吗?
LPDIRECT3D9 m_pD3D; //d3d对象
m_pD3D = Direct3DCreate9(D3D_SDK_VERSION);D3DCAPS9 d3dCaps;
HRESULT hr = m_pD3D->GetDeviceCaps(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &d3dCaps);
ZeroMemory(&m_d3dpp,sizeof(m_d3dpp));
m_d3dpp.Windowed=TRUE;
m_d3dpp.BackBufferFormat=d3ddm.Format;
m_d3dpp.BackBufferCount = 1;
m_d3dpp.SwapEffect=D3DSWAPEFFECT_DISCARD;
m_d3dpp.hDeviceWindow=m_hWnd3D;
m_d3dpp.AutoDepthStencilFormat=D3DFMT_D32;
m_d3dpp.EnableAutoDepthStencil=TRUE;
m_d3dpp.MultiSampleType = D3DMULTISAMPLE_NONE;
m_d3dpp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
m_d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_ONE;
m_d3dpp.BackBufferWidth           = rc.right;
m_d3dpp.BackBufferHeight          = rc.bottom;hr = m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,m_hWnd3D,dwFlags,&m_d3dpp,&m_pD3DDevice);在Windows2003系统上,一点问题都没有,但是在Win7上调试的时候,Direct3DCreate9可以成功,但是GetDeviceCaps和CreateDevice,就抱错返回 D3DERR_NOTAVAILABLE,请问是什么原因呢?先谢谢大家了