Your header file code works fine.
Is your main program a .cpp file? If it is just .c you cannot have classes (the error I get is on the class keyword).
Rename your main file to .cpp and recompile.
djceejay
Studying :: BSc Computer Games Technology :: UK
But circular dependencies in header files are always a bad style. Why do you have to define these structs in main.h? Define them somewhere else and include these files in graphics.h and input.h
But checking these defines is the usual way to prevent double inclusions which would report some errors on redefining types. If the header file is not included, it's because it had been already included. So types should be known already.
Are you sure that your graphics code gets compiled? Maybe you are reusing some header check from somewhere else and that's why it is not marked as an error?