[英]Why does function of ComPtr return a different value then &?
为什么 &(ComPtr.Get()) != ComPtr.GetAddressOf()?
我尝试将 ID3D11ShaderResourcesView* 传递给函数并将其转换为 ** 以在 CreateShaderResourceView 中使用,但它无法正常工作。
我意识到,问题在 3 个参数中。
您正在获取ComPtr.Get()
返回的指针的地址。 这与指向对象的指针完全不同。
ComPtr.Get()
按 value返回持有的指针,因此&(ComPtr.Get())
正在获取持有指针副本的地址。
ComPtr.GetAddressOf()
返回持有的指针本身的地址,而不是它的副本。
如果ComPtr.Get()
通过引用返回持有的指针,那么&(ComPtr.Get())
将采用原始指针的地址,而不是副本。 但它不返回引用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.