【问题标题】:What DirectX components are retained in Windows 8 SDK?Windows 8 SDK 中保留了哪些 DirectX 组件?
【发布时间】:2016-04-06 16:52:35
【问题描述】:

背景:我在 Visual Studio 2013 中进行开发,目标是 .Net 4.5,在 Windows 7 上运行。我一直试图让 DirectX 在 WPF 上下文中运行,并被称为 SharpDX ,以及使用它的示例程序:http://sharpdxwpf.codeplex.com/SourceControl/latest#SharpDX.WPF.sln

当我尝试构建它时,由于缺少“d3dcompiler_43.dll”而出现错误。我通过显式下载 DirectX 最终用户运行时 (https://www.microsoft.com/en-us/download/details.aspx?id=8109) 解决了这个问题

我的问题:根据 MSDN,DirectX 已被折叠到 Windows 8 SDK (https://blogs.msdn.microsoft.com/chuckw/2012/03/22/where-is-the-directx-sdk/) 中,并且根据同一文档,它包含在 Visual Studio 2012 中。

由于我使用的是 VS2013(专业版),我认为它也包含在其中。那么,为什么我必须明确下载 DirectX 最终用户包才能获取我的 DLL?还是 Windows 8 SDK 不包含旧版 DLL? (如果是这样,遗留程序应该如何在 Windows 8 和 10 中运行?)有人可以向我解释一下 DirectX 路线图吗?

【问题讨论】:

  • 这是一个笨拙的 DLL,着色器编译器不是 DirectX 运行时的一部分,只能部署在与使用它的 EXE 相同的目录中。请注意,_43 版本是旧的。您应该要做的是使用 SDK 附带的副本。使用像 SharpDX 这样的包装器会变得模糊,因为它不需要 SDK。
  • @Hans_Passant 那么汉斯,在 WPF 上下文中是否有一种非模糊的方式来获得 3D 线的硬件加速? WPF 没有本机 3D 线原语,所有替代方案似乎都不受支持或使用已弃用的 DirectX/Direct3D DLL 的第 3 方爱好项目(SlimDX、SharpDX、Helix3D 等)。我是一名执行短期任务的合同工程师,我想给我的客户留下一些他们可以维护的东西,这些东西不依赖于已弃用或不受支持的第三方组件。

标签: windows directx


【解决方案1】:

关于 D3DCompile 的故事被告知here

简而言之,使用 SharpDX 包进行构建不需要您安装旧版 DirectX SDK,但您确实需要它部署的旧的可选并行 DLL。您可以通过安装DXSETUP 来获取旧的#43 版本。

有关旧版 DirectX SDK 组件部署的所有详细信息,请参阅 Not So DirectSetup

对于使用 Direct 11 或 DirectX 12 的现代应用,最好使用 D3DCompile #47。它内置于 Windows 8.1 和 Windows 10 操作系统中,标头位于 Windows 8.1 SDK 中,并且 Windows 8.1 SDK 中有一个可重新分发的 DLL,您可以将其用于与您的 Windows Vista SP2 或更高版本“并行”部署应用程序。 SharpDX 可能应该使用那个,但如果您想支持 Windows XP,他们可能会坚持使用 #43。

有关旧版 DirectX SDK 和 DXSETUP 部署的 DLL 的完整列表,请参阅KB179113。这些都不是由 Windows SDK 部署的,也不包含在任何版本的 Windows 操作系统中。

【讨论】:

  • 但我认为 WPF 的 D3DImage 不支持高于 DirectX 9 的任何东西。所以我不能将那些与 WPF 一起使用,对吧?正如汉斯所说,整个事情都是模糊的,我只是一个兼职承包商,我想给我的客户一个 **un-** 模糊的解决方案,因为他们将无法维护它。
  • 除非您的系统要求包括 Windows XP,否则我建议使用 DirectX11 和 WPFDXInterop。如果您想坚持使用 DirectX9,您可以,但可能需要您以某种方式使用旧版 DirectX SDK。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多