【问题标题】:E_NOINTERFACE result from D3DX11CreateEffectFromMemoryE_NOINTERFACE 结果来自 D3DX11CreateEffectFromMemory
【发布时间】:2012-12-06 09:16:04
【问题描述】:

我刚刚开始使用 Dx11。 D3DX11CreateEffectFromMemory 正在返回 E_NOINTERFACE。

我知道 E_NOINTERFACE 对 COM 的含义,但我不知道如何解决这个问题。着色器编译器声称已成功编译着色器代码。

我正在将 .fxo(编译着色器)文件加载到缓冲区中。单步执行代码,调试器在指示行失败,并出现 0x8004002 错误:

抱歉,调试器指示的行是截图中的第 20 行。

感谢您的任何见解

【问题讨论】:

  • 好吧,我已经将项目从 VS2012 退回到 VS2010 并且调用成功。不过,找出呼叫失败的原因仍然很有趣。
  • 您使用的是哪个操作系统? Windows 7?
  • 自行编译源码(path\to\DirectX SDK\Samples\C++\Effects11)并链接D3DX11EffectsD.lib

标签: c++ directx-11


【解决方案1】:

我之前也遇到过同样的错误,但是功能不同,如果你使用的是Windows 7,我猜这个功能是不支持的,有些接口只适用于Windows 8,但是MSDN没有详细描述。看看来自 DirectX/XNA 论坛的this question

【讨论】:

  • 当我在同一平台上使用VS2010编译器编译时,(硬件和操作系统相同)函数调用成功。
猜你喜欢
  • 1970-01-01
  • 2013-05-12
  • 1970-01-01
  • 2014-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-26
  • 2011-08-26
相关资源
最近更新 更多