我想开始在Visual C ++ 2010中学习DirectX,但是它说当包含d3dx9.h时找不到d3dx11和d3dx9。我可以在DirectX 11中玩游戏,而dxdiag说我的计算机正在运行DirectX 11,但是当我搜索时对于C驱动器和我的D驱动器中的DirectX 11,找不到任何东西。因此,我决定安装DirectX 11,然后在安装后得到一个文件夹,但是它没有任何包含或bin文件夹,因此无法进入属性和VC ++并添加包含目录。决定尝试从DirectX 9开始,但是当我安装DirectX 9 2010年6月版时,我去了C \ Microsoft DirectX SDK(2010年6月),没有目录,只有DirectX实用程序和c ++文档以及示例浏览器和命令提示符。 。因此,我真的不知道该怎么办,我尝试安装d3dx9.lib并放入VS 2010的默认lib文件夹中。但是没有成功,但是我为DirectX 9 2004 summer库和Include文件夹设置了视觉c ++,但这是一个旧版本,因此不包含d3dx9.lib。我正在运行Windows 8.1 64位操作系统。
最佳答案
不推荐使用DirectX SDK和所有版本的D3DX库。
“现代”解决方案是使用Visual Studio 2012和Visual Studio 2013随附的Windows 8.x SDK。您可以安装Windows 8.1 SDK“独立”并通过.props文件将其与Visual Studio 2010一起使用。有关所有详细信息,请参见MSDN和this blog帖子。
您可以将Windows 8.x SDK与旧版DirectX SDK混合使用,以便继续将D3DX用于Win32桌面应用程序-您不能将DirectX SDK用于Windows Store应用程序,Windows Phone或Xbox One。有关如何处理include / lib路径目录的信息,请参见MSDN上的说明。如果要继续使用旧版DirectX SDK,则需要注意以下几点:
DirectX SDK(2010年6月)安装程序与已安装VS 2010 SP1 REDIST的系统存在一些兼容性问题。请参阅this帖子。
DirectX SDK(2010年6月)没有用于Windows 8.1的最新开发人员调试运行时。您必须安装Windows 8.1 SDK,VS 2013或VS 2013远程调试工具才能获得DEBUG层和REFERENCE设备。请参阅this帖子。
Windows 8.1上不支持Direct3D 9 DEBUG设备。
DirectX SDK中的“ Windows PIX”工具不适用于安装了DirectX 11.1运行时的Windows 8.1,Windows 8.0或Windows 7 SP1上的Direct3D 10.x或Direct3D11.x。使用Visual Studio 2013图形诊断程序或Intel / AMD / NVIDIA的GPU工具。
如果您部署的游戏需要D3DX之类的旧版DLL,请确保使用2011年4月更新的DXSETUP版本,而不要使用DirectX SDK(2010年6月)中的副本。请参阅this帖子,并确保阅读Not So DirectSetup。
考虑到所有这些,如果您仅使用Direct3D 11,而完全避免使用旧版DirectX SDK和D3DX,您的生活将会轻松很多。您可以找到许多D3DX的Direct3D 11替代品,这些替代品仅需要Windows 8.x SDK以及大量更新的示例。请参见Living Without D3DX,DirectX Tool Kit和DirectX SDK Samples Catalog。您可以将所有内容与VS 2010一起使用,但获取适用于Windows桌面的Visual Studio 2013 Express(适用于Win32桌面应用程序)和/或适用于Windows的Visual Studio 2013 Express(适用于Windows Store应用程序和Windows Phone应用程序)要容易得多。 。
PS:甚至在DirectX SDK仍然是获得VS 2010的Direct3D标头的受支持方式时,在您手动将include / path目录添加到项目中之前,该方法才可用。这就是为什么您不能在新创建的项目中包含“ d3dx9.h”的原因。
关于c++ - DirectX 9找不到包含库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26303922/