데스크톱 응용 프로그램에서 Windows.Gaming.Input을 호출해도 괜찮습니다. UWP 응용 프로그램에서만 사용할 수 있다는 생각이 들지는 않습니다. 헤더를 포함하고 사용하십시오. 여기에 모든 게임 패드 버튼 상태를 인쇄하기위한 샘플 코드는 다음과 같습니다
#include <assert.h>
#include <cstdint>
#include <iostream>
#include <roapi.h>
#include <wrl.h>
#include "windows.gaming.input.h"
using namespace ABI::Windows::Foundation::Collections;
using namespace ABI::Windows::Gaming::Input;
using namespace Microsoft::WRL;
using namespace Microsoft::WRL::Wrappers;
#pragma comment(lib, "runtimeobject.lib")
int main()
{
auto hr = RoInitialize(RO_INIT_MULTITHREADED);
assert(SUCCEEDED(hr));
ComPtr<IGamepadStatics> gamepadStatics;
hr = RoGetActivationFactory(HStringReference(L"Windows.Gaming.Input.Gamepad").Get(), __uuidof(IGamepadStatics), &gamepadStatics);
assert(SUCCEEDED(hr));
ComPtr<IVectorView<Gamepad*>> gamepads;
hr = gamepadStatics->get_Gamepads(&gamepads);
assert(SUCCEEDED(hr));
uint32_t gamepadCount;
hr = gamepads->get_Size(&gamepadCount);
assert(SUCCEEDED(hr));
for (uint32_t i = 0; i < gamepadCount; i++)
{
ComPtr<IGamepad> gamepad;
hr = gamepads->GetAt(i, &gamepad);
assert(SUCCEEDED(hr));
GamepadReading gamepadReading;
hr = gamepad->GetCurrentReading(&gamepadReading);
assert(SUCCEEDED(hr));
std::cout << "Gamepad " << i + 1 << " buttons value is: " << gamepadReading.Buttons << std::endl;
}
return 0;
}
당신이 ['XInput'] (HTTPS로 직접 이동 제안이 I에 대한 UWP API를 사용하는 중요한 필요가 없다면 : // MSDN을. 대신 microsoft.com/en-us/library/windows/desktop/hh405053(v=vs.85).aspx)를 참조하십시오. – Mgetz