【问题标题】:VMR9Allocator (DirectShow .NET + SlimDX)VMR9Allocator (DirectShow .NET + SlimDX)
【发布时间】:2008-11-21 05:07:14
【问题描述】:

我尝试使用 SlimDX 而不是 MDX 转换和运行 DirectShow .NET 的 VMR9Allocator 示例。当它到达这条线时我遇到了一个异常

return vmrSurfaceAllocatorNotify.SetD3DDevice(unmanagedDevice, hMonitor)

在 Allocator.cs 的 AdviseNotify 方法中。

例外是

不支持这样的接口

,而 hr 回报是

0x80004002

.

该示例在 MDX 上运行良好,我的 SlimDx 也可以正常工作,因为我已经使用它编写了另一个 3d 应用程序,工作正常。

我似乎无法找出问题所在,谷歌搜索也没有帮助。显然没有多少人使用这种组合,而且我发现也没有人真正遇到过这个问题。

注意:两周前我在 gamedev.net 上问过同样的问题,至今没有答案。

【问题讨论】:

  • 我也有这个问题,不明白为什么这个问题已经关闭了......你能重新打开它吗?将调试运行时转为零售对我来说不是一个可接受的解决方案...
  • @tinmaru 好吧,我严重怀疑这个问题是否有解决方案,因为没有多少开发人员积极参与 DirectX + SlimDX 组合。无论如何,我会重新打开它,谁知道呢。 P/S:重新打开这个问题还需要 4 票。
  • @tinmaru 如果你有兴趣gamedev.net/topic/…
  • 感谢您的回答!我用 C++ 版本重现了这个问题,解决方案没有在程序中定义 D3D_DEBUG_INFO。问题是无法在 SlimDX 中取消定义符号...

标签: .net directx directshow slimdx


【解决方案1】:

我自己解决了这个问题。它是由使用 DirectX 的调试运行时引起的。切换到零售运行时不会引发错误。另一个微软陷阱

【讨论】:

  • 正如我在其他评论中所说,DirectShow 中有一个已知错误。它可以在调试模式下工作,但您必须取消定义 D3D_DEBUG_INFO。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多