DX中关于lock函数的问题

liu1700 2013-02-28 08:31:26
在学习用DX开发游戏的时候遇见一个很重要的lock函数,在使用的时候出现了问题

用到的两个变量在之前声明为
LPDIRECTDRAWSURFACE7 lpddsprimary = NULL;
DDSURFACEDESC2 ddsd;

用的时候是这样写的
lpddsprimary->Lock(NULL, &ddsd, DDLOCK_SURFACEMEMORYPTR | DDLOCK_WAIT, NULL));
好多次断点调试都是到这步会出现问题

问题总是说:未处理的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突,
我觉得可能是指针或者是内存没初始化之类的,但是真心不知道该怎么弄了。。。


求高手们给个提示

...全文
152 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mujiok2003 2013-03-06
  • 打赏
  • 举报
回复
引用 8 楼 liu1700 的回复:
引用 7 楼 turingo 的回复:这是ddsd的初始化,没有看到lpddsprimary的初始化。 引用 6 楼 liu1700 的回复:引用 5 楼 pochioly 的回复:lpddsprimary初始化为NULL,之后呢? 我感觉是之后没有获取/创建对象就直接Lock了。。。 初始化null后有 C/C++ code?1234ZeroMemory……
有初始化。但是,NULL不是一个有效地对象。
liu1700 2013-03-06
  • 打赏
  • 举报
回复
引用 7 楼 turingo 的回复:
这是ddsd的初始化,没有看到lpddsprimary的初始化。 引用 6 楼 liu1700 的回复:引用 5 楼 pochioly 的回复:lpddsprimary初始化为NULL,之后呢? 我感觉是之后没有获取/创建对象就直接Lock了。。。 初始化null后有 C/C++ code?1234ZeroMemory(&ddsd, siz……
lpddsprimary已经在前边初始化为null了啊,还是说这种初始化方式不对。。
图灵狗 2013-03-06
  • 打赏
  • 举报
回复
这是ddsd的初始化,没有看到lpddsprimary的初始化。
引用 6 楼 liu1700 的回复:
引用 5 楼 pochioly 的回复:lpddsprimary初始化为NULL,之后呢? 我感觉是之后没有获取/创建对象就直接Lock了。。。 初始化null后有 C/C++ code?1234ZeroMemory(&ddsd, sizeof(DDSURFACEDESC2));ddsd.dwSize = sizeof(DDSURFACED……
liu1700 2013-03-06
  • 打赏
  • 举报
回复
引用 5 楼 pochioly 的回复:
lpddsprimary初始化为NULL,之后呢? 我感觉是之后没有获取/创建对象就直接Lock了。。。
初始化null后有
	ZeroMemory(&ddsd, sizeof(DDSURFACEDESC2));
	ddsd.dwSize		= sizeof(DDSURFACEDESC2);
	ddsd.dwFlags	= DDSD_CAPS;					
	ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;	
sanae 2013-03-05
  • 打赏
  • 举报
回复
lpddsprimary初始化为NULL,之后呢? 我感觉是之后没有获取/创建对象就直接Lock了。。。
赵4老师 2013-03-05
  • 打赏
  • 举报
回复
To set a breakpoint when a variable changes value From the Edit menu, click Breakpoints. Click the Data tab of the Breakpoints dialog box. In the Expression text box, type the name of the variable. Click OK to set the breakpoint.
赵4老师 2013-03-05
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。
图灵狗 2013-03-05
  • 打赏
  • 举报
回复
应该是lpddsprimary或者是ddsd未被正确的初始化。
liu1700 2013-03-05
  • 打赏
  • 举报
回复
额……自己顶一个……

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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