C++ windows8sdk中的d3dx11.h

C++ windows8sdk中的d3dx11.h,c++,windows,visual-studio,directx,d3dx,C++,Windows,Visual Studio,Directx,D3dx,序言: 我正在做一个项目,我试图包括,但没有找到。我搜索了一下,找到了这句话 D3DX不被认为是在Windows 8中使用Direct3D的标准API,因此不包含在相应的Windows SDK中。研究使用Direct3D API的替代解决方案 从 然后我做了更多的搜索并找到了答案,我尝试了答案,但结果只是打破了所有的包含。所以,是的,我做了一些搜索 问题: 您如何在VS 2013中使用d3dx11 下载并安装 在Visual Studio中,单击项目>属性>VC++目录: 包括目录:单击一个小向

序言: 我正在做一个项目,我试图包括,但没有找到。我搜索了一下,找到了这句话

D3DX不被认为是在Windows 8中使用Direct3D的标准API,因此不包含在相应的Windows SDK中。研究使用Direct3D API的替代解决方案

然后我做了更多的搜索并找到了答案,我尝试了答案,但结果只是打破了所有的包含。所以,是的,我做了一些搜索

问题: 您如何在VS 2013中使用d3dx11

下载并安装

在Visual Studio中,单击项目>属性>VC++目录:

包括目录:单击一个小向下箭头>>…>导航到C:\Program Files x86\Microsoft DirectX SDK 2010年6月\Include>Select文件夹

库目录>同上,但选择…\Lib\x86>确定

在代码中:

pragma commentlib,d3d11.lib pragma commentlib,d3dx11.lib pragma commentlib,dxgi.lib

包括
包括

您可以按照jaho的建议使用传统模式,或者采用新的Microsoft方式

请注意,当前使用的D3DX11替换技术包括DirectXTex和DirectXTK。D3DXMath被DirectXMath替换


看起来像是一个独立的纹理加载库,实际上它仍然由Microsoft积极维护。它包含所有类似LoadFromDDSFile的函数。

我认为它已被d3dmath替换,因此您可能必须切换到该函数。如果你习惯了旧的做事方式,那就有点烦人了,尤其是因为没有第三方D3D11教程更新来解决我从D3D转到OpenGL/CL.Ahh的原因中的变化部分,好吧。那有点臭。告诉我吧:/我甚至不确定d3dx有什么改进。@nmd系统改进之处在于所有旧的遗留代码都不起作用@NmdMystery您知道是否有一些兼容库可以重新加载吗?在VS 2012/2013中,您使用的是Windows 8.x SDK,因此必须使用include/lib路径顺序,其中DirectX SDK位于Windows 8.x SDK之后。详细说明在您引用的页面底部。相反,如果您使用的是VS 2012/2013 Windows XP平台工具集,那么实际上您使用的是Windows 7.1A SDK,因此必须首先使用DirectX SDK include/libs。请参见Blog。在VisualC++中,请注意更改以下内容,以避免难以检测和诊断的运行时错误,建议您永远不要静态链接到使用不同版本编译器编译的二进制文件。此外,升级EXE或DLL项目时,请确保升级它链接到的库。我们是否需要担心从VS2013链接到这些.lib文件,因为它们是使用早期编译器构建的?当然,这适用于任何库。对于D3DX11,您可以避免使用传统的DirectX SDK,而使用NuGet包。D3DX11仍然很旧,而且不受欢迎,所以你应该考虑是否有可能。DICTTXTEX是一个用于编写内容处理工具的大库,但是加载你控制的DDS文件是多余的。设计用于在不使用整个DirectXTex库的情况下廉价加载资源。