我最近更新到 Visual Studio 2012 Ultimate。我以前使用 DirectX 2010 年 6 月 11 日 SDK 进行编程,并希望继续使用 Visual Studio 2012 进行编程。但是,我发现 VS2012 带有自己的 DirectX SDK(在 Windows Kit 8.0 中)并且我一直在尝试迁移我的代码使用较新版本的 d3d11。一切都很顺利,直到我尝试在我的项目中使用效果文件(.fx 文件)。我必须使用 VS2012 在 DirectX SDK 中编译 Effects11 示例,并在我的项目中链接 lib 文件。那也很顺利。但是,当我编译我的项目时,该函数D3DX11CreateEffectFromMemory
返回一个E_NOINTERFACE error (no such interface is supported)
. 谁能告诉我这是为什么?请注意,我使用的是 Windows Kit 中的 d3d11.lib 和d3dx11.lib
来自 DirectX SDK。也许我不应该混合它们?但是,当我混合它们时,其他一切都正常,除了效果文件创建。
任何帮助,将不胜感激。
PS我不知道这是否有帮助,但你知道,如果我在项目设置中添加一个额外的库目录,"DirectXSDKInstallPath\lib\x86\"
它就可以工作。这是为什么?这是否意味着我正在使用旧版本的库?这将给出大量关于 winerror.h 中重新定义的标头的警告