【发布时间】:2012-09-23 03:23:14
【问题描述】:
我最近更新到 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 和 DirectX SDK 中的 d3dx11.lib。也许我不应该混合它们?但是,当我混合它们时,其他一切都可以正常工作,除了效果文件的创建。
任何帮助将不胜感激。
附:我不知道这是否有帮助,但你知道,如果我在"DirectXSDKInstallPath\lib\x86\" 的项目设置中添加一个额外的库目录,它就可以工作。这是为什么?这是否意味着我正在使用旧版本的库?这将给出大量关于 winerror.h 中重新定义的标头的警告
【问题讨论】:
-
“Visual Studio 2012”不是编程语言;它是一种可与多种不同语言一起使用的开发工具。您使用的是什么特定语言?失败的具体代码是什么?
-
对不起,应该让自己更清楚。我使用 C++ 作为编程语言。具体代码是 D3DX11CreateEffectFromMemory 函数(如 vini 为我高亮显示的那样)。它返回“未找到接口”错误。
标签: directx visual-studio-2012