- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我刚开始使用适用于 Windows 8 应用程序的 DirectX 11.1,例如我得到了以下 ComPtr:
ComPtr<ID3D11Buffer> constantBuffer;
我想知道的是,使用 &constantBuffer
和 constantBuffer.GetAddressOf()
有什么区别?
有时它们都能正常工作,但有时使用 &constantBuffer
会导致我的程序因访问冲突而崩溃。
最佳答案
你读过文档吗?
GetAddressOf - 检索 ptr_ 数据成员的地址,其中包含指向此 ComPtr 表示的接口(interface)的指针。
Operator& - 释放与此 ComPtr 对象关联的接口(interface),然后检索 ComPtr 对象的地址。
关于c++ - WinRT C++ ComPtr GetAddressOf 与 &,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14006988/
我正在努力从一些示例中学习 DirectX 12,但我无法理解 ComPtr.As() 方法的作用。 ComPtr device; ComPtr device2; // Do Stuff with D
我正在使用 ComPtr (Microsoft::WRL) 来管理一些 DirectX11 资源。如何手动释放? 如果我理解正确的话,“ReleaseAndGetAddressOf”方法只会释放指针而
我正在使用智能指针或 ComPtr。我在我的 directX 应用程序中使用它,我还没有看到其他人使用 ComPtr 在他们的代码中调用发布函数。那么智能指针是释放智能指针指向的数据还是需要我手动释放
我正在编写一个基于 DirectX 11 的引擎。所有 DirectX Com 对象都包含在 Microsoft::WRL::ComPtr 中。但不幸的是,当我在关机时调用 ID3D11Debug::
我正在编写一个基于 DirectX 11 的引擎。所有 DirectX Com 对象都包含在 Microsoft::WRL::ComPtr 中。但不幸的是,当我在关机时调用 ID3D11Debug::
我在映射顶点缓冲区时遇到问题。当我这样做时: ID3D11Buffer* pD3DSingleVertexBuffer; ... pD3DImmediateContext->Map(pD3DSingl
我只想知道 ComPtr 之间的确切区别和 CComPtr ,以及是否 ComPtr::As()是 CComPtr::QueryInterface() 的类似物? 我阅读了两者的文档,但这个问题没有明
我正在努力连接两个 API。从一个我得到一个 Windows::Storage::IBuffer ,另一个要求 ComPtr.我似乎没有找到一种方法来桥接这两者,即使我想在流中复制数据。 到目前为止,
我刚开始使用适用于 Windows 8 应用程序的 DirectX 11.1,例如我得到了以下 ComPtr: ComPtr constantBuffer; 我想知道的是,使用 &constantBu
尝试启动并运行 DX11 项目。为渲染的基础知识启动并运行大部分所需的对象,但是当我调用 OMSetRenderTargets 或 IASetVertexBuffers 时,我为这些函数传递的对象在函
我一直在我的代码中反复使用 ComPtr,因为我到处都需要它们,但我一直这样做: HRESULT Material::Initialize(aiMaterial* pMaterial,
我正在查看 WinRT 的一些 Direct3D 代码并注意那里的“引用类”使用“ComPtr”而不是“ID3D11Device1*”。所以我的问题是你必须在“ref 类”中使用“ComPtr”还是可
我正致力于从 DirectX12 Win32 桌面示例创建 WPF Assets (如 D3D11Image):D3D12PipelineStateCache ,所以我可以将它作为 XAML 元素嵌入
我正在学习教程,并将通常的初始化转换为使用 ComPtrs 直到这一行: ID3D11Device* g_pd3dDevice = nullptr; ID3D11Device1*
我是一名优秀的程序员,十分优秀!