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两者之间换一下看是否能解决问题

纠结了一周,终于解决了。

原文地址:https://www.cnblogs.com/alphaxz/p/11688337.html