我正在使用Direct3D进行C#互操作(我知道SlimDX和XNA,所以让我们不了解这个优点)我正在调用D3DX10CreateMesh将它传递给我的ID3DX10Mesh界面。我收到一条错误消息“没有支持这样的接口(HRESULT异常:0x80004002(E_NOINTERFACE))”。 D3DX10CreateMesh调用在我尝试创建10个网格以复制9个网格时(成功加载x文件后)。我查看了ID3DX10Mesh的C#定义,它的结构与我定义的其他工作接口的结构相同。
但后来我注意到了一些事情。 9和10网格的Guids 完全相同(4020E5C2-1403-4929-883F-E2E849FAC195)。我已经仔细检查了d3dx9mesh和d3dx10mesh标题,就是这种情况。 9网格界面可以工作,但10没有(这可能是实例化顺序依赖)我个人不理解这一点,因为它意味着即使在C / C ++应用程序中你也不能一起使用这两个网格,但我们知道你能行。我在NVUT SDK中看到过它。我只能认为运行时可调用包装器会被Guids搞糊涂吗?
为什么网格指南相同?C / C ++应用程序如何能够避免冲突?