Are you sure its not in a namespace?
Or inside an IFDEF that is not defined?
EDIT
I just checked, and _WIN32_WINNT is not defined on my machine, and for INPUT, it needs to be > 0x0400.
You could define it manually before the include like this:
#define _WIN32_WINNT 0x0500
This way it would work, but it really shouldn't be done this way. I don't know why this constant is not defined.
EDIT2
Wait a minute, you do define _WIN32_WINNT as 0x0501 :S
Don't know why it doesn't work then :/
This works perfectly fine on my machine:
Or inside an IFDEF that is not defined?
EDIT
I just checked, and _WIN32_WINNT is not defined on my machine, and for INPUT, it needs to be > 0x0400.
You could define it manually before the include like this:
#define _WIN32_WINNT 0x0500
This way it would work, but it really shouldn't be done this way. I don't know why this constant is not defined.
EDIT2
Wait a minute, you do define _WIN32_WINNT as 0x0501 :S
Don't know why it doesn't work then :/
This works perfectly fine on my machine:
#define _WIN32_WINNT 0x0501 #include <windows.h> //#include <stdout.h> #include <stdio.h> #include <iostream> //#include "stdafx.h" using namespace std; int main() { INPUT* x; //x=new struct tagINPUT; //printf(sizeof(struct tagINPUT)); printf("hello"); return 0; }