我在VS C ++ 2010中编译了我的代码。如果我使用调试版,一切都还可以! 如果我想发布版本,我有沟通:
main.cpp(7):致命错误C1083:无法打开包含文件:'d3dx11.h':没有这样的文件或目录
我使用DirectX 11.我该怎么办?
答案 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 Kit,DirectXTex,DirectXMesh和/或其他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 或更好的预算。