マウスのクリックとキーストロークをシミュレートする、数年前に書いたプログラムをコンパイルしようとしています。私はそれをこの最小限の例に減らしました:
#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'
INPUTに関する MSDN のページには、Windows.h で定義されていると記載されているため、型が認識されない理由がわかりません。
別のstackoverflowユーザーがここで同様の問題を抱えていましたが、彼らの解決策である を追加#define _WIN32_WINNT 0x0500
してもエラーは修正されませんでした。
何年も前に Windows XP でプログラムをビルドすることができました。Windows 7 では INPUT が XP のように機能しないのではないでしょうか? それとも、コンパイラにフラグを提供するのを忘れたのでしょうか?