DirectX中的(void **)&lpdd怎么理解

clk664251332 2016-07-15 11:34:46
DirectDrawCreateEx(NULL, (void **)&lpdd, IID_IDirectDraw7, NULL) ;
这个函数原型是
HRESULT WINAPI DirectDrawCreateEx( GUID FAR *lpGUID, LPVOID *lplpDD,REFIID iid, IUnknown FAR *pUnkOuter );
lpdd是一个指针,是怎么转换为指向指针的指针的,那个&有什么用?没有就不能转换了吗?
...全文
153 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hlx_beat 2016-07-16
  • 打赏
  • 举报
回复
先学会指针再说
flying_music 2016-07-16
  • 打赏
  • 举报
回复
lpdd是一个指针变量,那&lpdd就是取的它的地址啊,地址的地址,不就是二级指针了吗,没有&逻辑就不一样了,没有&就是把lpdd传给函数了,有&是把lpdd的地址传给函数了,这么做一般是要修改lpdd的指向
ooolinux 2016-07-16
  • 打赏
  • 举报
回复
通常DirectDrawCreateEx函数执行以后,lpdd会获得一个值,假设它是一个普通变量,你要通过函数调用来使它获得一个值,是不是要传递&lpdd也就是lpdd的地址过去?(如果传值过去函数执行以后对lpdd变量有影响吗?参考swap函数)lpdd是一个指针变量也是一样的,传递这个指针变量的地址过去,函数执行以后,通常指针变量lpdd会获得一个值(某块新分配内存的结构体的首地址)

64,642

社区成员

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

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