【问题标题】:DirectX Sample using DXUT Failed to create Direct3D device (Debug only)使用 DXUT 的 DirectX 示例无法创建 Direct3D 设备(仅限调试)
【发布时间】:2013-03-13 21:32:31
【问题描述】:

我在这里遇到了一个很奇怪的问题,我正在尝试从 DirectX 示例浏览器运行 DXUT DirectX 10/11 教程。它们构建良好,但不能在调试模式下运行,因为这会触发错误警告“无法创建 Direct3D 设备”。这很奇怪,因为我可以在发布模式下运行它们。然而,最奇怪的是它们过去常常在调试模式下运行,我发誓我在它运行的那天没有改变任何东西,而第二天它没有改变。一位朋友也有同样的问题,大约在同一时间发生。

有没有人遇到过这个问题并知道解决方案,或者知道为什么会出现这种问题,如果你不知道的话,我有一张支持 DirectX 11 的显卡。

谢谢。

【问题讨论】:

  • 我也有同样的问题。它在 Release 中有效,但在 Debug 中无效。当我启用 C++ Exception 时,我看到弹出内存损坏错误。
  • @SPIKETHECAT 和 Robert 的回答共同为我解决了这个问题。只需在 Windows 7 中安装 Windows 8 SDK。

标签: directx directx-10


【解决方案1】:

我实际上只是花了一整天的时间试图解决这个完全相同的问题。这是解决方案,希望也能解决您的问题...

我设法找到这篇文章,解释了最近的更新,(准确地说是 2013 年 2 月 26 日),导致旧版本搞砸了:

http://blogs.msdn.com/b/chuckw/archive/2013/02/26/directx-11-1-and-windows-7-update.aspx

这解释了为什么它在几周前运行良好,而现在我猜它突然停止运行了!

按照他们的建议,我下载了 Visual Studio 2012 的试用版,经过一个半小时的安装时间并重新启动系统,您应该拥有所有新的 DirectX SDK 文件你需要。

注意:您甚至不必使用 Visual Studio 2012。新文件应该可以解决您在 Visual Studio 2010 和旧版本中遇到的问题!

(在此之前我还安装了所有最新的驱动程序,但我认为这没有任何帮助,但尽可能升级驱动程序是值得的,因为这已经解决了类似的问题我以前有过)。

希望这会有所帮助!!! :)

【讨论】:

    【解决方案2】:

    在你的代码中的某个地方你可能有类似的东西

    #if defined(DEBUG) || defined(_DEBUG)  
        createDeviceFlags |= D3D10_CREATE_DEVICE_DEBUG;
    #endif
    

    如果你查看msdn 上的D3D10_CREATE_DEVICE_DEBUG;,你会看到这个

    要使用此标志,您必须安装 D3D11_1SDKLayers.dll; 否则,设备创建失败。

    您应该检查您的系统中是否有 dll,或者您应该重新安装 DirectX SDK。

    【讨论】:

    • 安装 DirectX SDK 无法解决此问题... DirectX SDK(2010 年 6 月)版本已过时,不再具有适用于安装了 DirectX 11.1 运行时的 Windows 7 的正确 Direct3D 调试运行时。您必须安装 Windows 8.x SDK、VS 2012/2013 或 VS 2012/2013 远程调试工具包才能在您的系统上安装正确的调试运行时。
    【解决方案3】:

    IE10 自动更新导致我出现自动不支持 directx 开发的问题。最简单的解决方案是在...下载独立的win8 sdk

    http://msdn.microsoft.com/en-us/windows/desktop/hh852363

    必须更新 directx 调试层 dll。

    【讨论】:

      猜你喜欢
      • 2016-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-15
      相关资源
      最近更新 更多