Почему XInputGetCapabilities возвращает ERROR_DEVICE_NOT_CONNECTED? - PullRequest
0 голосов
/ 16 февраля 2019

Я тестирую 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 выдает ошибку устаревания.Что я делаю не так?

...