Версии XInput
XInput — это кроссплатформенный API, который поставляется для использования в Xbox и Windows. В Xbox XInput поставляется в виде статической библиотеки, скомпилированной в основной исполняемый файл игры. В Windows XInput предоставляется в виде библиотеки DLL, установленной в системных папках операционной системы.
Сегодня существует три текущие версии библиотеки DLL XInput. Выберите соответствующую версию XInput на основе функций XInput, которые вы используете, и версий Windows, которые вы планируете поддерживать.
- 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 поставляется в качестве распространяемого компонента в пакете SDK DirectX с поддержкой Windows Vista, Windows 7 и Windows 8. Используйте эту версию, если классическое приложение предназначено для запуска в этих версиях Windows, и вам нужна функциональность, которая не поддерживается XInput 9.1.0.
XInput 1.4
XInput 1.4 сегодня поставляется в качестве системного компонента в Windows 8 как XINPUT1_4.DLL. Он доступен в папке "Входящие" и не требует распространения с приложением. Пакет SDK для Windows содержит заголовок и библиотеку импорта для статического связывания с XINPUT1_4.DLL. Чтобы скачать пакет SDK для Windows 8, см. статью "Загрузки" для разработки классических приложений.
XInput 1.4 имеет следующие основные преимущества по сравнению с другими версиями XInput:
- Это единственная версия, которую можно использовать в приложениях Магазина C++/DirectX.
- Новая функция XInputGetAudioDeviceIds предоставляет строку идентификатора звукового устройства, которую можно использовать для открытия голосового или звукового устройства 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.
Пакет SDK для Windows содержит заголовок и библиотеку импорта для статического связывания с 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 были предоставлены как распространяемые библиотеки DLL в пакете SDK DirectX. Первая распространяемая версия XInput, XInput 1.1, отправленная в выпуске пакета SDK DirectX за апрель 2006 г. Последняя версия пакета SDK Для DirectX была XInput 1.3, доступна в выпуске пакета SDK DirectX в июне 2010 г. Пакет SDK DirectX больше недоступен для загрузки Майкрософт.
Вы можете использовать XInput 1.3 для приложений, поддерживающих версии Windows нижнего уровня, и требовать функциональные возможности, не предоставляемые XInput 9.1.0 (то есть правильные отчеты подтипов, поддержка аудио, явная поддержка отчетов об батарее и т. д.).