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報告。 這些旗標會結合在 FlagsXINPUT_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 版本有下列缺點:
- 基於回溯相容性的原因,XInputGetCapabilities 這個版本的 XInput 會傳回固定的功能資訊。 無論連接的控制器裝置為何,XInputGetCapabilities XInput 9.1.0 一律會報告 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 未提供的功能(也就是正確的子類型報告、音訊支援、明確電池報告支援等等)。