Ok this is about to drive me nutz.

I have 4 .cpp file and 5 .h files
There is a main.h & .cpp which contains the main program
There is a ListCtrl.h & .cpp which is a wrapper for a listview
There is a Grab.h & .cpp which grabs stuff from a file
There is another .h & .cpp thats not important

Finally there is a custheader.h which has all the <headers> like <string> <map> <vector> etc.

Main.h has all the "headers" in it.

All the other .h files just has "Main.h" included.

All the .h have #ifndef __NAME_H__ #def __NAME_H__ in them to stop them from getting defined multiple times.

Ok now all that works great, except I have a struct that is in Grab.h, and when I try to use it in ListCrtl.h it tells me that the struct isnt defined. Of course when I try to just add the struct to header it tells me its now trying to be redefined. I have tried to include the Grab.h and that doesnt work because it already linked when main.h get compiled.

So how do I fix this up?