Saltar al contenido principal
A partir de GameInput 4.0, puede implementar el entorno de ejecución de GameInput, GameInputRedist.dll, en el mismo directorio que el ejecutable de su juego. Esto se denomina carga local (sideloading). Un entorno de ejecución cargado localmente permite que su juego use las características y correcciones de GameInput con las que se compiló y probó, incluso en un sistema en el que el paquete redistribuible de GameInput no está instalado o en el que hay instalada una versión anterior. Este modelo es similar al que usa el DirectX Agility SDK. La carga local se admite en PC y en consolas XBOX. En XBOX, la carga local requiere el GDK de octubre de 2025 (2510) o posterior, y permite que su juego use una versión de la API más reciente que la que admite el entorno de ejecución del GDK, como la API v4 antes del GDK de octubre de 2026. Para obtener más información, consulte GameInput en consolas XBOX.
Instalar el paquete redistribuible de GameInput sigue siendo la forma preferida de implementar GameInput en PC. Un entorno de ejecución instalado admite todas las características de GameInput, lo comparten todas las aplicaciones y se actualiza independientemente de su juego. Use la carga local cuando no resulte práctico instalar el paquete redistribuible; por ejemplo, cuando su canal de distribución no admita la ejecución de instaladores, o en máquinas de desarrollo y prueba.

Obtención del entorno de ejecución que se puede cargar localmente

El paquete NuGet Microsoft.GameInput contiene el entorno de ejecución que se puede cargar localmente en las siguientes ubicaciones. El paquete NuGet no copia estos archivos en la salida de compilación. Agregue a su proceso de compilación o empaquetado un paso que copie los archivos de su plataforma y arquitectura de destino junto al ejecutable de su juego. En PC, implemente también GameInputRawInputProxy.exe en el mismo directorio que GameInputRedist.dll. El entorno de ejecución cargado localmente usa este proceso auxiliar para recibir la entrada de teclado y mouse. Un entorno de ejecución cargado localmente solo usa el proxy que se encuentra junto a él, nunca el de un paquete redistribuible instalado. Si falta el proxy, el entorno de ejecución recurre a recibir la entrada de teclado y mouse en el proceso de su juego.
Los entornos de ejecución de PC y de XBOX tienen el mismo nombre de archivo. Asegúrese de implementar la copia que corresponde a su plataforma de destino. Si se implementa la copia incorrecta, GameInputCreate produce un error con HRESULT_FROM_WIN32(ERROR_EXE_MACHINE_TYPE_MISMATCH) (0x800700D8).

Cómo se selecciona el entorno de ejecución

No es necesario cambiar el código para usar un entorno de ejecución cargado localmente. Vincule con gameinput.lib del paquete NuGet y llame a GameInputCreate como de costumbre. La primera vez que se llama a GameInputCreate, el cargador de gameinput.lib busca el entorno de ejecución de GameInput en las siguientes ubicaciones:
  1. El entorno de ejecución integrado, GameInput.dll, en el directorio del sistema.
  2. El entorno de ejecución del paquete redistribuible instalado, GameInputRedist.dll, en el directorio del sistema o en el directorio en el que está instalado el paquete redistribuible de GameInput.
  3. El entorno de ejecución cargado localmente, GameInputRedist.dll, en el directorio del ejecutable del juego.
El cargador usa el entorno de ejecución con la versión de archivo más alta. Si dos entornos de ejecución tienen la misma versión, se prefiere el entorno de ejecución cargado localmente frente al paquete redistribuible instalado, y el paquete redistribuible instalado frente al entorno de ejecución integrado. En PC, cuando se carga un entorno de ejecución cargado localmente y hay un entorno de ejecución de GameInput más reciente instalado en el sistema, el entorno de ejecución cargado localmente reenvía todas las llamadas al entorno de ejecución instalado más reciente. Como resultado, el entorno de ejecución cargado localmente actúa como versión mínima: su juego siempre usa la versión que usted distribuyó o una versión instalada más reciente. El juego se sigue tratando como cargado localmente, y las limitaciones de la sección siguiente siguen aplicándose.

Limitaciones

En PC, algunas características de GameInput dependen de componentes que solo están presentes cuando el paquete redistribuible de GameInput está instalado, como el servicio GameInput que administra el foco de entrada. Cuando su juego usa un entorno de ejecución cargado localmente en PC, se aplican las siguientes limitaciones. Estas limitaciones no se aplican en las consolas XBOX.
  • Las llamadas a IGameInput::EnableBackgroundInput con true no tienen ningún efecto, ya que habilitar la entrada en segundo plano también reclama los botones del sistema, que un entorno de ejecución cargado localmente no puede reclamar.
  • El servicio GameInput no administra el foco de entrada, por lo que GameInput no filtra la entrada de forma coherente en función de si su juego tiene el foco. Según el dispositivo, es posible que su juego reciba o no la entrada mientras no tiene el foco. Si su juego depende de un comportamiento coherente del foco, compruebe si tiene el foco antes de actuar sobre la entrada, o instale el paquete redistribuible de GameInput.
  • En las versiones de la API de v1 a v3, IGameInput::SetFocusPolicy solo acepta GameInputDefaultFocusPolicy y GameInputEnableBackgroundInput. Las demás directivas de foco, incluida cualquier combinación de marcas, se omiten.
  • En las versiones de la API de v1 a v3, IGameInput::RegisterSystemButtonCallback produce un error con GAMEINPUT_E_FEATURE_REQUIRES_INSTALL (0x838AD02B). En la versión v4 de la API, los botones del sistema se notifican en lecturas de tipo GameInputKindSystemButton, que funcionan con un entorno de ejecución cargado localmente. Para obtener más información, consulte IGameInputReading::GetSystemButtonState.

Recomendaciones

  • Use la misma versión del paquete NuGet para el encabezado de GameInput, gameinput.lib y el entorno de ejecución cargado localmente.
  • Pruebe su juego con y sin el paquete redistribuible de GameInput instalado.
  • Si su juego requiere entrada en segundo plano o un comportamiento coherente del foco en PC, instale el paquete redistribuible de GameInput en lugar de cargar localmente el entorno de ejecución, o además de hacerlo. Para obtener más información, consulte GameInput para PC y consola con NuGet.

Consulte también

GameInput para PC y consola con NuGet
GameInput en consolas XBOX
Control de versiones de la API de GameInput
Aspectos básicos de GameInput
Referencia de la API de GameInput
Última modificación el 6 de noviembre de 2026