DDSURFACEDESC2无法获得lpSurface

耳朵最威风 2013-02-04 12:59:46
好奇怪啊。我写了段代码想把通过GetSurfaceDesc()函数填充的DDSURFACEDESC2对象里的lpSurface输出出来。GetSurfaceDesc()每次返回都是DD_OK,而且里面的lPitch可以正常获取。但是发现lpSurface每次输出的都是00000000。
通过surface->Lock获取的DDSURFACEDESC2里面的lpSurface就是正确的,感觉好奇怪啊,百思不得其解啊。希望高手忙帮解释一下吧。
...全文
134 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
耳朵最威风 2013-02-05
  • 打赏
  • 举报
回复
引用 1 楼 sabird 的回复:
顶起!各位高手帮忙看看啊!谢谢
谢谢指点。 但是我其实是这么写的。
lpddsback->Lock(NULL,&ddsd, DDLOCK_SURFACEMEMORYPTR | DDLOCK_WAIT,NULL);
qjtest::traceSurfaceLP(lpddsprimary);
qjtest::traceSurfaceLP(lpddsback);
qjtest::trace(ddsd.lpSurface);
	void traceSurfaceLP(LPDIRECTDRAWSURFACE7 surface)
	{
		DDSURFACEDESC2 ddsd;
		DDRAW_INIT_STRUCT(ddsd);
		ddsd.dwFlags = DDSD_LPSURFACE;
		HRESULT r = surface->GetSurfaceDesc(&ddsd);
		if(r == DD_OK)
		{
			trace(ddsd.lpSurface);
		}
		else
		{
			trace("get an error when trace surface dd");
		}
	}
可是还是没有啊。
耳朵最威风 2013-02-04
  • 打赏
  • 举报
回复
顶起!各位高手帮忙看看啊!谢谢
Kevin_qing 2013-02-04
  • 打赏
  • 举报
回复
没lock哪儿来的surface

8,305

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧