API контроллера Xbox 360 не работает

Я пытаюсь пройти учебник по XInput на http://msdn.microsoft.com/en-us/library/windows/desktop/ee417001%28v=vs.85%29.aspx. Тем не менее, код из примера не будет даже выполнен, потому что он продолжает говорить, что среди других ошибок, «Нет целевой архитектуры». Я просмотрел весь интернет и до сих пор не знаю, как определить мою архитектуру. Все, что я сейчас хочу сделать — это программа, сообщающая мне, подключен контроллер или нет. Вот код, который у меня есть:

#include <Xinput.h>
#include <Windows.h>

void main(){
DWORD dwResult;

// Retrieve the state of the controller
for (DWORD i = 0; i < XUSER_MAX_COUNT; i++)
{
XINPUT_STATE state;
ZeroMemory(&state, sizeof(XINPUT_STATE));

// Simply get the state of the controller from XInput.
dwResult = XInputGetState(i, &state);

if (dwResult == ERROR_SUCCESS){
// Controller is connected
}
else
{
// Controller is not connected
}
}
}

Я использую 64-разрядную версию Windows 7 Professional и использую Visual Studio Professional 2013. Вот мои ошибки (путь проекта удален для пробела):

1   error C1189: #error :  "No Target Architecture" c:\program files (x86)\windows kits\8.1\include\um\winnt.h  145 1
2   IntelliSense: #error directive: "No Target Architecture"    c:\Program Files (x86)\Windows Kits\8.1\Include\um\winnt.h  145 2
3   IntelliSense: identifier "PCONTEXT" is undefined    c:\Program Files (x86)\Windows Kits\8.1\Include\um\winnt.h  16918   11
4   IntelliSense: identifier "PSLIST_HEADER" is undefined   c:\Program Files (x86)\Windows Kits\8.1\Include\um\winnt.h  17529   11
5   IntelliSense: identifier "SLIST_HEADER" is undefined    c:\Program Files (x86)\Windows Kits\8.1\Include\um\winnt.h  17537   16
6   IntelliSense: identifier "PSLIST_HEADER" is undefined   c:\Program Files (x86)\Windows Kits\8.1\Include\um\winnt.h  17544   13
7   IntelliSense: identifier "PSLIST_HEADER" is undefined   c:\Program Files (x86)\Windows Kits\8.1\Include\um\winnt.h  17551   13
8   IntelliSense: identifier "PSLIST_HEADER" is undefined   c:\Program Files (x86)\Windows Kits\8.1\Include\um\winnt.h  17559   13
9   IntelliSense: identifier "PSLIST_HEADER" is undefined   c:\Program Files (x86)\Windows Kits\8.1\Include\um\winnt.h  17569   13
10  IntelliSense: identifier "PSLIST_HEADER" is undefined   c:\Program Files (x86)\Windows Kits\8.1\Include\um\winnt.h  17576   10
11  IntelliSense: identifier "PCONTEXT" is undefined    c:\Program Files (x86)\Windows Kits\8.1\Include\um\minwinbase.h 358 9
12  IntelliSense: identifier "PSLIST_HEADER" is undefined   c:\Program Files (x86)\Windows Kits\8.1\Include\um\interlockedapi.h 51  11
13  IntelliSense: identifier "PSLIST_HEADER" is undefined   c:\Program Files (x86)\Windows Kits\8.1\Include\um\interlockedapi.h 59  13
14  IntelliSense: identifier "PSLIST_HEADER" is undefined   c:\Program Files (x86)\Windows Kits\8.1\Include\um\interlockedapi.h 67  13
15  IntelliSense: identifier "PSLIST_HEADER" is undefined   c:\Program Files (x86)\Windows Kits\8.1\Include\um\interlockedapi.h 81  13
16  IntelliSense: identifier "PSLIST_HEADER" is undefined   c:\Program Files (x86)\Windows Kits\8.1\Include\um\interlockedapi.h 94  13
17  IntelliSense: identifier "PSLIST_HEADER" is undefined   c:\Program Files (x86)\Windows Kits\8.1\Include\um\interlockedapi.h 102 10
18  IntelliSense: identifier "CONTEXT" is undefined c:\Program Files (x86)\Windows Kits\8.1\Include\um\processthreadsapi.h  762 16
19  IntelliSense: identifier "PCONTEXT" is undefined    c:\Program Files (x86)\Windows Kits\8.1\Include\um\WinBase.h    1279    14
20  IntelliSense: identifier "PCONTEXT" is undefined    c:\Program Files (x86)\Windows Kits\8.1\Include\um\WinBase.h    8619    13
21  IntelliSense: identifier "PCONTEXT" is undefined    c:\Program Files (x86)\Windows Kits\8.1\Include\um\WinBase.h    8621    10
22  IntelliSense: identifier "PCONTEXT" is undefined    c:\Program Files (x86)\Windows Kits\8.1\Include\um\WinBase.h    8637    11
23  IntelliSense: identifier "PCONTEXT" is undefined    c:\Program Files (x86)\Windows Kits\8.1\Include\um\WinBase.h    8660    10
24  IntelliSense: identifier "PCONTEXT" is undefined    c:\Program Files (x86)\Windows Kits\8.1\Include\um\WinBase.h    8669    10
25  IntelliSense: identifier "PCONTEXT" is undefined    c:\Program Files (x86)\Windows Kits\8.1\Include\um\WinBase.h    8685    13

Кроме того, я включил код для первой ошибки. Строка 145 — это строка с надписью «Нет целевой архитектуры». Под «#error» есть красная линия. Вот:

#if defined(_AMD64_) || defined(_X86_)
#define PROBE_ALIGNMENT( _s ) TYPE_ALIGNMENT( DWORD )
#elif defined(_IA64_) || defined(_ARM_)
#define PROBE_ALIGNMENT( _s ) (TYPE_ALIGNMENT( _s ) > TYPE_ALIGNMENT( DWORD ) ? \
TYPE_ALIGNMENT( _s ) : TYPE_ALIGNMENT( DWORD ))
#elif !defined(RC_INVOKED)
#error "No Target Architecture"#endif

Заранее благодарны за Вашу помощь. У меня и пары других парней есть проблемы с этим, поэтому любая помощь будет оценена.

0

Решение

Если я правильно понимаю, вам нужно определить архитектуру платформы, на которой будет работать ваша программа. так ставь #define _AMD64_ например, перед тем, как включить.

Если это не поможет, возможно, вам нужно добавить несколько библиотек в зависимость от компилятора … это решило мою проблему.

И IIRC выкладываю #include<windows.h> перед #include<Xinput.h> может также помочь.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]