Sorry, my friend, isn't it the same code you asked for help about three days ago? :-O
It's a lot of code and very few feedback about its errors.
However, you can see that you declare a function here:
1 2
TPoint ConvertMouseToOGLCoordinate(int mouseX, int mouseY, int mouseZ)
{
and then you claim that it is to be found in another compilation unit (i.e. another file) here: extern TPoint ConvertMouseToOGLCoordinate(int mouseX, int mouseY, int mouseZ);
You are declaring a big bunch of things together in the same header, like structs and two classes, even derived one from the other, and functions that apparently come out of the blue.
I'm also not used to capitalized method names and I must say I've never seen a class where every single variable and every single method are static (TBlock) - whenever I'm just a C++ beginner and that doesn't mean anything. Btw, isn't it common to see static variables being initialized in the source instead of the header? I think it's not a good strategy to initialize them in the header, since headers are generally conceived to be included by several source files.
I think if you tried to split your declarations into several headers and have them more organized, it would be simpler for you to isolate the errors.
Please post the full text of the "unresolved external" message.
PLEASE USE CODE TAGS (the <> formatting button) when posting code.
It makes it easier to read your code and also easier to respond to your post. http://www.cplusplus.com/articles/jEywvCM9/
Hint: You can edit your post, highlight your code and press the <> formatting button.