为什么XInputGetCapabilities返回ERROR_DEVICE_NOT_CONNECTED?

时间:2019-02-16 00:43:25

标签: windows xinput

我正在测试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;
....

result1result2始终为ERROR_DEVICE_NOT_CONNECTED。

我之前尝试添加XInputEnable(TRUE);,但是VS2017引发了弃用错误。我在做什么错了?

0 个答案:

没有答案