directX createdevice出错的几种解决办法【转载】
directX createdevice出错的几种解决办法
最近学了下DX。。。在初始化的时候总是失败提示createdevice出错。。。。翻遍了各种论坛终于找到解决的办法,留下记录以免再次碰到。
createdevice出错无非以下几种情况:
1.d3d加速不支持。。。这是硬件问题。对于现在的显卡来说基本不存在了
2.最最普遍的问题传递的参数不对。包括窗口句柄,D3DPRESENT_PARAMETERS等。前者只需要校验是否有效。。。后者是个麻烦事。很多地方没有把所有成员都初始化。对于新手来说,最好是把每个成员都初始化一下,顺带了解下各个参数的含义,参数中最常见的就是取色模式不对。。。试下改成D3DFMT_D16,我碰到的是不应该自己设置BackBufferFormat,设置这个办法最好采用
D3DDISPLAYMODE d3ddm;
if(FAILED(d3d9->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm)))
{
return false;
}
d3dpp.BackBufferFormat = d3ddm.Format;
3.跟第二差不多。参数devicetype的值。可以试下在HAL和REF两者之间换一下看是否能解决问题
纠结了一周,终于解决了。