我了解 QueryInterface 方法的作用 - 它只返回指向特定接口的指针。但我的问题是,我为什么要使用这个方法?
我的意思是,
我的意思是,
QueryInterface(__uuidof(IDXGIResource), (void**)&Resource)
和 IDXGIResource * Resource
有什么区别吗?如果相同,那我为什么需要使用这个方法呢?在什么情况下应该使用它?
device->CreateTexture2D(&SharedTextureDesc, NULL, &SharedTexture); SharedTexture->QueryInterface(__uuidof(IDXGIResource), (void**)&SharedResource);
这意味着首先,SharedResource
指针现在将指向SharedTexture
所指向的纹理,对吗? - Soon_to_be_code_masterQueryInterface
视为COM中的dynamic_cast
,并记住它可能会失败,因此一定要检查HRESULT以避免错误。与其直接使用QueryInterface
,不如考虑使用Microsoft::WRL::ComPtr智能指针,然后使用As
方法,这样可以将其封装在更自然的C++语法中。 - Chuck Walbourn