XInput 版本
XInput 是一種跨平臺 API,隨附于 Xbox 和 Windows 上使用。 在 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 函 式會提供音訊裝置識別碼字串,可用來開啟連接到控制器的頭戴式裝置的 XAudio2 主控語音或音訊裝置。 此版本不提供 XInputGetDSoundAudioDeviceGuids 函 式。
- 提供改良的裝置功能報告,包括XINPUT_CAPS_WIRELESS、XINPUT_CAPS_FFB_SUPPORTED、XINPUT_CAPS_PMD_SUPPORTED和XINPUT_CAPS_NO_NAVIGATION旗標,以及更精確的XINPUT_CAPS_VOICE_SUPPORTED報告。 這些旗標會結合在 XINPUT_CAPABILITIES 結構的 Flags 成員 中。 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功能位。
- 您無法判斷指定使用者識別碼的頭戴式裝置。 XInputGetAudioDeviceIds 函式無法使用,且 XInputGetDSoundAudioDeviceGuids 函式不會在 Windows 8.x 或 Windows 10 上傳回任何結果。
- XInputEnable 、 XInputGetBatteryInformation 和 XInputGetKeystroke 函式無法使用。
XInput 1.3
某些舊版的 XInput 已在 DirectX SDK 中提供為可轉散發 DLL。 XInput 1.1 的第一個可轉散發版本,隨附于 DirectX SDK 2006 年 4 月版本。 DirectX SDK 中要隨附的最後一個版本是 XInput 1.3,可在舊版 DirectX SDK 的 2010 年 6 月版本中取得。 Microsoft 下載 已不再提供 DirectX SDK。
您可以針對支援舊版 Windows 的應用程式使用 XInput 1.3,而且需要 XInput 9.1.0 未提供的功能(也就是正確的子類型報告、音訊支援、明確電池報告支援等等)。