【发布时间】:2014-01-08 19:52:47
【问题描述】:
我需要将我的 ID3D11RenderTargetView 指针的地址传递给一个函数,并且我使用一个 com_ptr_t 来保存它。所以首先我尝试了:
ID3D11RenderTargetViewPtr pRenderTargetView; = ID3D11RenderTargetViewPtr(NULL);
pImmediateContext->OMSetRenderTargets(1, &pRenderTargetView, nullptr);
但是,& 运算符会将指针变为空。然后我再次查看了 com_ptr_t 函数,发现我可以写:
pImmediateContext->OMSetRenderTargets(1, &pRenderTargetView.GetInterfacePtr(), nullptr);
它确实有效,但是没有更简单的方法来获取底层指针的地址而不会丢失它吗?通过更简单,我的意思是更短,语法明智。
【问题讨论】:
-
不,只有这两种方式。
_com_ptr_t是一个非常简单的类,你可以在comip.h看到它的定义
标签: c++ com null direct3d smart-pointers