我正在尝试编译我几年前编写的一个模拟鼠标点击和击键的程序。我已将其简化为这个最小的示例:
#include "Windows.h"
int main(){
INPUT foo;
return 0;
}
它给了我这个错误:
C:\projects\clicker>g++ minimaltest.cpp
minimaltest.cpp: In function 'int main()':
minimaltest.cpp:4:2: error: 'INPUT' was not declared in this scope
minimaltest.cpp:4:8: error: expected ';' before 'foo'
MSDN 在INPUT上的页面说它是在 Windows.h 中定义的,所以我不知道为什么它不能识别类型。
另一个 stackoverflow 用户在这里遇到了类似的问题,但他们的解决方案添加#define _WIN32_WINNT 0x0500
,并没有修复错误。
几年前,我能够在 Windows XP 上构建该程序。会不会是 INPUT 在 Windows 7 上不像在 XP 上那样工作?或者也许我忘了向编译器提供一个标志?