I have a C++ project in Visual Studio 2008.
In the project I have several forms and several non-form classes. One non-form specifically called Import_LP.h that is a class with several methods all of which are written in the header file with nothing in the resource file.
I have no problem with #include Import_LP in any of the form classes and creating objects and referencing any of its methods, however any other class I try to #include it into, it gives me a
syntax error : undeclared identifier 'Import_LP'
on the line it is referenced occurs ie Import_LP^ importLP;
I come from a java/c# background is there something I’m missing with the linking here?
If you have include guards, it goes like this: the preprocessor includes Import_LP.h, which says “only include me once”, then includes Window.h, which tries to include Import_LP.h, but doesn’t because of the include guard. So Window.h starts parsing the window class, but fails because the Import_LP.h class header hasn’t fully loaded yet.
The solution is to predeclare the classes:
Window.h:
Import_LP.h:
This will only allow you to reference the other by pointer or reference until the actual include, but that should be doable. Technically you only have to do this to one or the other headers.