多亏了StackOverflow,我解决了一个困扰我一段时间的链接器错误。我假设库d3d11包含d3dx11的功能,这导致了混淆。
这两个库有什么不同?Is d3dx11在它的描述中只提到了"D3DX工具库“。
发布于 2012-11-08 23:20:13
对于directX头文件,但我认为对于lib应该是相同的:
这些文件包含不同的内容。d3d11.h文件包含Direct3D的核心部分。d3dx11.h文件包括对Direct3D的扩展,这些扩展对于图形库来说不是必需的,但在编写游戏或其他图形程序时会非常方便。
发布于 2021-03-08 16:38:58
d3d11.lib是Windows11API,它是Direct3D操作系统的一部分。可以在Windows SDK中找到最新版本的d3d11*.h头文件和d3d11.lib库。
d3dx11.lib是Direct3D 11的“助手”库,其中包括D3DX11CreateTextureFromFile和D3DX11SaveTextureToFile等内容。它是可选的,并且Runtime DLL不是Windows操作系统的一部分--您的应用程序必须部署它才能运行。
适用于Direct3D 9的D3DX (也称为D3DX9)具有精灵、图案线、网格、字体、纹理加载/保存、BC (DXT1-5)压缩、邻接计算、D3DXmath和效果(FX)库的功能。其中包括HLSL编译器。它还具有MSR的其他功能,如渐进网格、顶点缓存优化、uvatlas等值图和预计算辐射传输(PRT)。
适用于Direct3D 10的D3DX (也称为D3DX10)比D3DX9进行了更多的裁剪,并利用Windows映像组件(WIC)进行图像I/O。它支持BC1-5压缩。.x文件格式已弃用,因此虽然D3DX10具有网格对象,但它无法从磁盘创建或保存网格对象。其中包含了与D3DX9版本相同的D3DXMath。将Direct3D 10的Effects system (FX10)放入操作系统。HLSL编译器被拆分成D3DCompile应用程序接口。
用于Direct3D 11的D3DX (也称为D3DX11)比以前的版本小得多。它主要是通过WIC和BC1-7压缩加载/保存纹理。DirectXMath取代了D3DXMath。不推荐使用Direct3D 11 (FX11)的效果,并将运行时添加到open source项目中。Direct2D支持“模式线”和演示图形功能,DirectWrite应该取代字体功能。
D3DX9、D3DX10和D3DX11以及每个Microsoft Docs的遗留DirectX软件开发工具包都被弃用了。
有很多D3DX11的替代品,其中大部分是开源的。有关完整列表,请参阅Living Without D3DX。
对于需要D3DX9/D3DX10/D3DX11的旧代码库,您可以使用Microsoft.DXSDK.D3DX NuGet包,而不是使用传统的SDK。
https://stackoverflow.com/questions/13291853
复制相似问题