Я тестирую XInput и не могу заставить свою программу читать контроллер.Контроллер подключен, работает в играх.
Код, который я запускаю:
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_CREATE:
{
for (int i = 0; i < XUSER_MAX_COUNT; i++) {
XINPUT_CAPABILITIES cap;
XINPUT_STATE state;
ZeroMemory(&cap, sizeof(XINPUT_CAPABILITIES));
ZeroMemory(&state, sizeof(XINPUT_STATE));
DWORD result1 = XInputGetCapabilities(i, 0, &cap);
DWORD result2 = XInputGetState(i, &state);
if (result1 == ERROR_SUCCESS || result2 == ERROR_SUCCESS) {
continue;
}
}
}
break;
....
И result1
, и result2
всегда ERROR_DEVICE_NOT_CONNECTED.
Iпытался добавить XInputEnable(TRUE);
раньше, но VS2017 выдает ошибку устаревания.Что я делаю не так?