This is a DLL project. I am writing a class called CDGpanel, which inherits from CDGbase. The compiler keeps telling me that the base class is undefined despite the fact that the base class is #included properly and compiles just fine. With the derived class commented out, I can even instantiate the base class, so I know there's nothing wrong with it. I have even tried to forward declare the base class in the derived class's header, but that doesn't seem to make any difference. This is the first class I've tried to inherit, so I assume this will be a problem for any others I attempt to write. Neither the base class nor the derived class do anything at the moment because all I've done is stub the constructors/destructors.
I have pasted the code below. Note that the base class has no default constructor. This is intentional. When this project takes its final form, CDGbase will be a pure abstract class whose constructor will be called explicitly from its derived classes. I don't know if this makes a difference or not.
One other thing that I am sure is related . . . Every class I write that depends on another class I have written, #including it doesn't seem to be enough. I have to put a forward declaration in there for it to compile. Also, I have typedef'd std::string to simply String, but I have to typedef it for every single class in which it's used.
#define SPEC_ID unsigned long
typedef std::string DGLIB_API String
class DGLIB_API CDGpanel :public CDGbase
CDGpanel(SPEC_ID spec, CDGbase *owner, String *title, int x, int y, int width, int height);
CDGpanel::CDGpanel(STYLE style, CDGbase *owner, String *title, int x, int y, int width, int height)
:CDGbase(owner, title, x, y, width, height)