Xbox 360控制器API不配合
Xbox 360 Controller API Not Cooperating
我正在尝试通过http://msdn.microsoft.com/en-us/library/windows/desktop/ee417001%28v=vs.85%29.aspx上的XInput教程。然而,示例中的代码甚至无法执行,因为在其他错误中,它一直说"没有目标体系结构"。我在互联网上找遍了,仍然不知道如何定义我的建筑。我现在要做的就是让程序告诉我控制器是否连接。下面是我到目前为止的代码:
#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
}
}
}
我正在运行Windows 7 Professional 64位,使用Visual Studio Professional 2013。以下是我的错误(项目路径删除空间):
1 error C1189: #error : "No Target Architecture" c:program files (x86)windows kits8.1includeumwinnt.h 145 1
2 IntelliSense: #error directive: "No Target Architecture" c:Program Files (x86)Windows Kits8.1Includeumwinnt.h 145 2
3 IntelliSense: identifier "PCONTEXT" is undefined c:Program Files (x86)Windows Kits8.1Includeumwinnt.h 16918 11
4 IntelliSense: identifier "PSLIST_HEADER" is undefined c:Program Files (x86)Windows Kits8.1Includeumwinnt.h 17529 11
5 IntelliSense: identifier "SLIST_HEADER" is undefined c:Program Files (x86)Windows Kits8.1Includeumwinnt.h 17537 16
6 IntelliSense: identifier "PSLIST_HEADER" is undefined c:Program Files (x86)Windows Kits8.1Includeumwinnt.h 17544 13
7 IntelliSense: identifier "PSLIST_HEADER" is undefined c:Program Files (x86)Windows Kits8.1Includeumwinnt.h 17551 13
8 IntelliSense: identifier "PSLIST_HEADER" is undefined c:Program Files (x86)Windows Kits8.1Includeumwinnt.h 17559 13
9 IntelliSense: identifier "PSLIST_HEADER" is undefined c:Program Files (x86)Windows Kits8.1Includeumwinnt.h 17569 13
10 IntelliSense: identifier "PSLIST_HEADER" is undefined c:Program Files (x86)Windows Kits8.1Includeumwinnt.h 17576 10
11 IntelliSense: identifier "PCONTEXT" is undefined c:Program Files (x86)Windows Kits8.1Includeumminwinbase.h 358 9
12 IntelliSense: identifier "PSLIST_HEADER" is undefined c:Program Files (x86)Windows Kits8.1Includeuminterlockedapi.h 51 11
13 IntelliSense: identifier "PSLIST_HEADER" is undefined c:Program Files (x86)Windows Kits8.1Includeuminterlockedapi.h 59 13
14 IntelliSense: identifier "PSLIST_HEADER" is undefined c:Program Files (x86)Windows Kits8.1Includeuminterlockedapi.h 67 13
15 IntelliSense: identifier "PSLIST_HEADER" is undefined c:Program Files (x86)Windows Kits8.1Includeuminterlockedapi.h 81 13
16 IntelliSense: identifier "PSLIST_HEADER" is undefined c:Program Files (x86)Windows Kits8.1Includeuminterlockedapi.h 94 13
17 IntelliSense: identifier "PSLIST_HEADER" is undefined c:Program Files (x86)Windows Kits8.1Includeuminterlockedapi.h 102 10
18 IntelliSense: identifier "CONTEXT" is undefined c:Program Files (x86)Windows Kits8.1Includeumprocessthreadsapi.h 762 16
19 IntelliSense: identifier "PCONTEXT" is undefined c:Program Files (x86)Windows Kits8.1IncludeumWinBase.h 1279 14
20 IntelliSense: identifier "PCONTEXT" is undefined c:Program Files (x86)Windows Kits8.1IncludeumWinBase.h 8619 13
21 IntelliSense: identifier "PCONTEXT" is undefined c:Program Files (x86)Windows Kits8.1IncludeumWinBase.h 8621 10
22 IntelliSense: identifier "PCONTEXT" is undefined c:Program Files (x86)Windows Kits8.1IncludeumWinBase.h 8637 11
23 IntelliSense: identifier "PCONTEXT" is undefined c:Program Files (x86)Windows Kits8.1IncludeumWinBase.h 8660 10
24 IntelliSense: identifier "PCONTEXT" is undefined c:Program Files (x86)Windows Kits8.1IncludeumWinBase.h 8669 10
25 IntelliSense: identifier "PCONTEXT" is undefined c:Program Files (x86)Windows Kits8.1IncludeumWinBase.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
提前感谢您的帮助。我和其他几个人都遇到了这个问题,所以任何帮助都会很感激。
如果我理解正确的话,您需要定义程序将运行的平台的体系结构。例如,把#define _AMD64_
放在include之前。
如果没有帮助,也许你需要添加一些库到你的编译器依赖…这解决了我的问题。
IIRC将#include<windows.h>
放在#include<Xinput.h>
前面可能也有帮助。
相关文章:
- 使用 Winsock2.h C++向不和谐 API 发送 HTTP 请求时出现问题
- Win32 API 控制台光标在 WriteConsole 后不移动
- 如何在不破坏现有应用程序的情况下更改 API 中 stl 容器的数据类型?
- C++Windows API MOUSEEVENTF_XDOWN,MOUSEEVENTF_XUP不起作用
- 消息框在WM_COMMAND内不起作用!(WIN32 API)
- 使用 Node.js N-API 调用 C 函数时,不会显示预期的输出
- 如何以编程方式获取任务管理器进程CPU使用率(不是PerfMon API)
- cpp / c ++中的grpc客户端代码,元数据x-api-key/x-goog-api-key不起作用,给了我语音A
- SDL2 + Win32 API 菜单栏单击事件不起作用
- 用于从可能不存在的容器中检索对象的 API 设计
- xgboost C API 不会产生与 Python 相同的结果
- Lua C API 自定义打印函数,在字符串中传递空格时不调用
- 项目 A 依赖共享库 B,B 依赖 C,A 不依赖 C。当我使用 B 的 API 时,警告 B 找不到 C
- 使用(非对象)API 时改变表数组C++而不重新创建整个平面缓冲区
- 使用 Windows 防火墙 API 限制服务,找不到服务短名称
- 节点 API 抛出自己的错误消息,而不是自己的错误消息
- Windows API SIZE_T在内存和控制台中不显示相同的值
- C++ CURL Json 请求不和谐 API 以发布消息
- 在不使用API的情况下,如何在Windows中获取过程信息
- Xbox 360控制器API不配合