如何在Windows 8中使用DirectX扩展库?

我需要使用扩展的DirectX-Library(D3DX …),但是我在Windows 8(VS)上编程,因此已经包含了DirectX 11-SDK。 但是,它没有扩展库。

我必须下载2010年6月的SDK吗? 如果是这样,我该如何设置VS来使用扩展库?

D3DX 11库已经停产,所以如果你想使用它,你将不得不下载2010 SDK并安装它。 (如果path尚未设置,则必须设置库并将项目path包含到SDK安装的文件夹(程序文件(x86)IIRC中的某个位置)。

但是,如果您想要的function类似于D3DX库的function,请尝试DirectXTK( http://directxtk.codeplex.com ),该devise有点替代D3D11的D3DX库(使用Windows Phone / Windows 8 / Xbox One支持)

所有版本的D3DX都被弃用,不包含在Windows 8.x SDK中。 这在MSDN和我的博客上都有介绍。

理想情况下,你应该改变你的程序不使用D3DX。 D3DXfunction的完整列表可以在这里find。 总结:如果你使用的是Direct3D 10,那么使用Direct3D 11端口。然后使用各种各样的Direct3D 11支持库来代替D3DX:

  • CodePlex上的DirectX工具包提供了D3DX的大多数运行时元素(例如加载纹理,精灵,字体,网格等)的替代品。
  • CodePlex上的 DirectXTexreplace了D3DX中的纹理内容处理function。
  • CodePlex上的 DirectXMesh替代了D3DX中的网格内容处理function。
  • 如果您仍在使用DXUT库,则可以使用CodePlex上的最新版本。
  • 如果您仍在使用Effects 11库,则最新版本也在CodePlex上 。
  • 在MSDN代码库中,有许多来自传统DirectX SDK的示例。

如果给出所有的建议,您仍然需要使用传统的D3DX库,或者如果您使用XAudio 2.7或XInput1.3来支持Windows 7或更低版​​本,则可以混合使用Windows 8.x SDK和传统DirectX SDK。 但是,这样做的path顺序与以前对VS 2012和VS 2013的建议相反:

(IncludePath);$(DXSDK_DIR)Include

$(LibraryPath);$(DXSDK_DIR)Lib\x86$(LibraryPath);$(DXSDK_DIR)Lib\x64

这在MSDN上有详细的介绍。