XInput 版本
XInput 是用于 Xbox 和 Windows 的跨平台 API。 在 Xbox 上,XInput 作为静态库提供,该库编译为主游戏可执行文件。 在 Windows 上,XInput 作为安装在作系统的系统文件夹中的 DLL 提供。
目前有三个当前版本的 XInput DLL。 根据所使用的 XInput 功能以及要支持的 Windows 版本,选择相应的 XInput 版本。
- XInput 1.4:XInput 1.4 作为 Windows 10 的一部分提供。 使用此版本生成 UWP 应用。
- XInput 9.1.0:XInput 9.1.0 作为 Windows Vista、Windows 7 和 Windows 8 的一部分提供。 如果你的桌面应用打算在这些版本的 Windows 上运行,并且你使用的是基本 XInput 功能,请使用此版本。
- XInput 1.3:XInput 1.3 作为 DirectX SDK 中的可再发行组件提供,支持 Windows Vista、Windows 7 和 Windows 8。 如果你的桌面应用打算在这些版本的 Windows 上运行,并且你需要 XInput 9.1.0 不支持的功能,请使用此版本。
XInput 1.4
XInput 1.4 今天作为 Windows 8 中的系统组件提供,XINPUT1_4.DLL。 它提供“收件箱”,不需要通过应用程序重新分发。 Windows 软件开发工具包(SDK)包含用于静态链接XINPUT1_4.DLL的标头和导入库。 若要下载 Windows 8 SDK,请参阅 下载以开发桌面应用。
XInput 1.4 与其他版本的 XInput 具有以下主要优势:
- 这是唯一可用于 C++/DirectX Windows 应用商店应用的版本。
- 新的 XInputGetAudioDeviceIds 函数提供了一个音频设备 ID 字符串,可用于打开附加到控制器的耳机的 XAudio2 主语音或音频设备。 XInputGetDSoundAudioDeviceGuids 函数在此版本中不可用。
- 提供改进的设备功能报告,包括XINPUT_CAPS_WIRELESS、XINPUT_CAPS_FFB_SUPPORTED、XINPUT_CAPS_PMD_SUPPORTED和XINPUT_CAPS_NO_NAVIGATION标志以及更准确的XINPUT_CAPS_VOICE_SUPPORTED报告。 这些标志在 标志XINPUT_CAPABILITIES 结构的成员中组合。 XInputGetCapabilities 函数返回 XINPUT_CAPABILITIES。
XInput 9.1.0
与 XInput 1.4 一样,XInput 9.1.0 今天作为 Windows 10、Windows 8.x、Windows 7 和 Windows Vista 中的系统组件作为XINPUT9_1_0.DLL提供。 它主要用于与现有应用程序的向后兼容性。 它具有缩减的函数集,因此我们建议尽可能使用 XInput 1.4。 但是,对于必须在 Windows 的下层版本上运行但不需要 XInput 1.4 或 XInput 1.3 提供的其他音频功能的应用程序,这很方便。
Windows SDK 包含标头和导入库,用于静态链接XINPUT9_1_0.DLL。
XInput 9.1.0 在其他版本的 XInput 方面具有以下缺点:
- 出于向后兼容性原因,在此版本的 XInput 中 XInputGetCapabilities 返回固定的功能信息。 无论连接的控制器设备如何,XInput 9.1.0 中的 XInputGetCapabilities 始终报告 GAMEPAD 的设备子类型。 即使无线设备已连接,它也不会返回XINPUT_CAPS_WIRELESS功能位。
- 无法确定给定用户 ID 的耳机。 XInputGetAudioDeviceIds 函数不可用,XInputGetDSoundAudioDeviceGuids 函数在 Windows 8.x 或 Windows 10 上不返回任何结果。
- XInputEnable、XInputGetBatteryInformation和 XInputGetKeystroke 函数不可用。
XInput 1.3
某些早期版本的 XInput 已在 DirectX SDK 中作为可再发行 DLL 提供。 第一个可再发行版本的 XInput,XInput 1.1,在 DirectX SDK 的 2006 年 4 月版本中发布。 DirectX SDK 中提供的最后一个版本是 XInput 1.3,在 2010 年 6 月发布的旧版 DirectX SDK 中提供。 DirectX SDK 在下载Microsoft不再可用。
可以将 XInput 1.3 用于支持下层版本的 Windows 的应用程序,并且需要 XInput 9.1.0 不提供的功能(即正确的子类型报告、音频支持、显式电池报告支持等)。