永发信息网

directdraw初始化失败

答案:2  悬赏:0  手机版
解决时间 2021-03-28 19:13
  • 提问者网友:我没有何以琛的痴心不悔
  • 2021-03-27 18:35
我在玩游戏 驿动之心 的时候 打开之后黑屏 之后弹出窗口说directdraw初始化失败 请各位大虾们帮帮忙 怎么样才能让我能玩呢~
最佳答案
  • 五星知识达人网友:老鼠爱大米
  • 2020-04-20 21:24
1、重装游戏;
2、重装DIRECT X;
3、重新显卡驱动;
全部回答
  • 1楼网友:第四晚心情
  • 2020-11-29 17:29
最简单的是使用全屏独占模式。 要开始初始化dd,首先创建并显示一个窗口,获得它的句柄; 初始化代码: #include #pragma comment(lib,"dxguid.lib") #pragma comment(lib,"ddraw.lib") lpdirectdraw7 lpdd; lpdirectdrawsurface7 lpddsmain; lpdirectdrawsurface7 lpddsback; //下面程序初始化dd,并设置窗口分辨率为width*height,bpp为色深,注意要设定相应变量的值为适合的值(如800*600*16),否则初始化失败。 bool initddraw(hwnd hwnd, int width, int height, int bpp) { if(failed(directdrawcreateex(null, (void**)&lpdd, iid_idirectdraw7, null))) return false; if(failed(lpdd->setcooperativelevel(hwnd, ddscl_exclusive|ddscl_fullscreen))) return false; if(failed(lpdd->setdisplaymode(width, height, bpp, 0, 0))) return false; ddsurfacedesc2 ddsd; zeromemory( &ddsd, sizeof( ddsd ) ); ddsd.dwsize = sizeof( ddsd ); ddsd.dwflags = ddsd_caps | ddsd_backbuffercount; ddsd.ddscaps.dwcaps = ddscaps_primarysurface | ddscaps_flip | ddscaps_complex | ddscaps_3ddevice; ddsd.dwbackbuffercount = 1; if(failed(lpdd->createsurface( &ddsd, &lpddsmain, null))) return false; // get a pointer to the back buffer ddscaps2 ddscaps; zeromemory( &ddscaps, sizeof( ddscaps ) ); ddscaps.dwcaps = ddscaps_backbuffer; if(failed(lpddsmain->getattachedsurface( &ddscaps, &lpddsback))) return false; lpddsback->addref(); return true; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯