Direct3D 10是否有COM曝光

Direct3D 10是否有COM曝光,com,guid,direct3d,Com,Guid,Direct3d,先生们,尊敬的女士们 我在CodeProject的COM论坛上发布了这个问题,并得到了一个势利的回复,希望您能提供更多帮助 我看到Microsoft有一个Direct3D 9的COM库,其GUID为81BDCBCA-64D4-426d-AE8D-AD0147F4275C Microsoft是否已在COM上公开Direct3D 10?如果是,接口GUID是什么 提前感谢。从MSDN上的文档中可以看出,他们似乎已经从拥有IDirect3D9对象和成员函数(如)转变为使用全局函数(如)。使用Direc

先生们,尊敬的女士们

我在CodeProject的COM论坛上发布了这个问题,并得到了一个势利的回复,希望您能提供更多帮助

我看到Microsoft有一个Direct3D 9的COM库,其GUID为81BDCBCA-64D4-426d-AE8D-AD0147F4275C

Microsoft是否已在COM上公开Direct3D 10?如果是,接口GUID是什么


提前感谢。

从MSDN上的文档中可以看出,他们似乎已经从拥有IDirect3D9对象和成员函数(如)转变为使用全局函数(如)。使用Direct3D 10,他们将IDirect3D9中与适配器(例如)相关的许多函数拆分为

换句话说,Direct3D 10仍然使用COM,但是没有,没有IDirect3D9的对应项。您使用IDirect3D9的事情现在可以通过其他方式完成

编辑:上面GUID为的COM类是IDirect3D9。Direct3D 10没有更新版本(没有IDirect3D10可以完成IDirect3D9所做的事情);相反,该类的成员函数被拆分为全局函数(例如)和DXGI类(例如),您可以直接调用全局函数而不是通过对象调用全局函数。您不需要IDirect3D10对象,因为您将使用它执行的任务现在以不同的方式完成


通过在Direct3D头文件中搜索DEFINE_GUID宏,您应该能够将GUID映射到COM类名。

在COM中,您所要求的库信息编码在类型库(TLB文件)中。自DirectX 8.0以来,Direct3D几乎十年前就没有为任何对象使用过类型库或CoCreateInstance。Direct3D使用COM接口管理对象的生命周期,仅此而已。他们根本不怎么使用QueryInterface。大多数COM基础结构不适用于Direct3D使用的接口及其关联对象


它们不使用CoCreateInstance来创建对象,而是提供一个工厂函数(如Direct3DCreate9),从中可以获得一个基本接口,然后使用该基本接口的创建者方法来获取其他所有内容。在Direct3D 10中,他们发现枚举显示等的基本接口是稳定的,D3D 8和D3D 9也是如此,因此他们将其移动到稳定的基本接口IDXGIFactory中。D3D10、10.1和11使用了相同的DXGI代码。

伙计,这太棒了。对不起,我现在意识到我的问题不是100%正确的方向。但是现在我在头文件中看到了guid,我完全理解了您的意思。开枪求救!我很高兴我能帮助它变得有意义:-)