4

我正在用一本书通过 DirectX 9,示例#include d3dx9tex.hintellisense 表明该文件不存在,因此hResult = D3DXGetImageInfoFromFile(filename.c_str(), &imageInfo);也显示错误。我安装了 DirectX 12。任何人都可以帮忙吗?

4

2 回答 2

2

所有 Direct3D 9 编程书籍和教程都假定您使用的是 DirectX SDK,您可以在其中找到 D3DX 支持库。DirectX SDK 本身和 Direct3D 9 一样是旧版。D3DX9、D3DX10 和 D3DX11 已弃用。请参阅DirectX SDK 在哪里?.

如果您有 Windows 10(DirectX 12 需要)或 Windows 8.x 或 Windows 7,那么我的建议是学习 Direct3D 11。Direct3D 9 仅在您尝试以 Windows XP 系统为目标时才有用,并且有尝试在 Windows 8.x 或 Windows 10 上使用 Direct3D 9 进行开发时有许多注意事项。Direct3D 12 是一种专家图形 API,它假定您已经完全有能力编写 Direct3D 11 应用程序。DirectX Tool Kit的教程是一个很好的起点。您根本不需要旧版 DirectX SDK 来构建 Direct3D 11 应用程序,因为所有头文件、库和 HLSL 编译器都包含在 VS 2012、VS 2013 和 VS 2015 中。

另请参见没有 D3DX 的生活, DirectX SDK 示例目录, DirectX SDK 工具目录, DirectX SDKs of a certain age , The Zombie DirectX SDK

更新:有一个适用于 DX12 的 DirectX 工具包

我最近还在DirectXTex项目中添加了 Direct3D 9 的 DDSTextureLoader 和 WICTextureLoader 实现。请参阅此博客文章

于 2016-10-27T16:50:59.590 回答
0

d3d9helper.h(包含在所有 Windows SDK 中) 现在严格来说,您应该使用更现代的 DirectX,除非这里的目的是支持旧版本的 Windows。

仍然请记住,Windows 7 / 8 / 10 同时支持 DirectX 11 和 12,如果您专门为 Windows 10 发布某些东西,那么只需使用 DirectX 12 ......最初学习可能会有点令人生畏,它是就您对硬件和管道的控制而言,功能更强大(从开发人员的角度来看)。

于 2020-03-12T09:36:22.707 回答