DirectX11发布VS 2010 C ++

时间:2015-01-10 21:25:47

标签: c++ visual-studio-2010 directx-11

我在VS C ++ 2010中编译了我的代码。如果我使用调试版,一切都还可以! 如果我想发布版本,我有沟通:

  

main.cpp(7):致命错误C1083:无法打开包含文件:'d3dx11.h':没有这样的文件或目录

我使用DirectX 11.我该怎么办?

1 个答案:

答案 0 :(得分:1)

MSDN所述,D3DX的所有版本均已弃用,包括D3DX9,D3DX10和D3DX11。您当然可以使用旧版DirectX SDK继续使用已弃用的库。 请记住,使用VS 2010,您必须手动将include / lib路径添加到项目的VC ++目录属性页面,以便随之使用DirectX SDK。

对于32位Win32配置:

$(DXSDK_DIR)Utilities\bin\x86;$(ExecutablePath)
$(DXSDK_DIR)Include;$(IncludePath)
$(DXSDK_DIR)Lib\x86;$(LibraryPath)

对于x64原生配置:

$(DXSDK_DIR)Utilities\bin\x64;$(DXSDK_DIR)Utilities\bin\x86;$(ExecutablePath)
$(DXSDK_DIR)Include;$(IncludePath)
$(DXSDK_DIR)Lib\x64;$(LibraryPath)

如果能够让#include <d3dx11.h>用于DEBUG构建,而不是RELEASE,则可能无法为所有配置/所有平台设置VC ++目录。

另一种选择是迁移到VS 2012或VS 2013,其中包括集成了DirectX SDK的Windows 8.x SDK。在那里,您可以使用DirectX Tool KitDirectXTexDirectXMesh和/或其他replacements来保留旧版D3DX。

请注意,如果您使用旧版DirectX SDK继续使用D3DX11并且还使用Windows 8.x SDK(例如VS 2012或VS 2013),那么您必须反转上面的包含顺序,因为旧版DirectX SDK标头早于Windows 8.x SDK中的标头。

$(ExecutablePath);$(DXSDK_DIR)Utilities\bin\x86
$(IncludePath);$(DXSDK_DIR)Include
$(LibraryPath);$(DXSDK_DIR)Lib\x86

对于x64原生配置:

$(ExecutablePath);$(DXSDK_DIR)Utilities\bin\x64;$(DXSDK_DIR)Utilities\bin\x86
$(IncludePath);$(DXSDK_DIR)Include
$(LibraryPath);$(DXSDK_DIR)Lib\x64

请注意,您可以按照here的说明使用Windows 8.1 SDK和 DirectX工具包与VS 2010一起使用,但如果可以,我强烈建议您使用 VS 2013社区版如果您没有 VS 2013 Professional 或更好的预算。