0

我正在与 Direct3D 进行 C# 互操作(我知道 SlimDX 和 XNA,所以我们不要讨论它的优点),我正在调用 D3DX10CreateMesh,并将其传递给我的 ID3DX10Mesh 接口。我收到一条错误消息,提示“不支持此类接口(来自 HRESULT 的异常:0x80004002 (E_NOINTERFACE))”。D3DX10CreateMesh 调用是在我尝试创建 10 网格以将 9 网格复制到其中时(成功加载 x 文件后)。我查看了 ID3DX10Mesh 的 C# 定义,它遵循与我定义的所有其他工作接口相同的结构。

但后来我注意到了一些事情。9 和 10 网格的Guid完全相同(4020E5C2-1403-4929-883F-E2E849FAC195)。我已经仔细检查了 d3dx9mesh 和 d3dx10mesh 标题,就是这种情况。9 网格接口工作,但 10 不工作(这可能取决于实例化顺序)我个人不理解这一点,因为这意味着即使在 C/C++ 应用程序中你也不能同时使用两个网格,但我们知道你能行。我已经看到它在 NVUT SDK 中完成了。我只能认为运行时可调用包装器被 Guid 弄糊涂了?

为什么网格向导相同,C/C++ 应用程序如何避免冲突?

4

1 回答 1

1

在 forums.xna.com 上提问和回答

于 2009-07-17T01:54:43.260 回答