Click to See Complete Forum and Search --> : Using public variables of View class in a dialog clas


Zulfi Khan
April 22nd, 1999, 07:33 AM
I have written a prog. in which I have public data members in the View class. I have created a dialog box. I want to use public data members of View class in the implementation file (*.cpp) of dialog class. I have included the header file of view class. I am getting following error:
*View.h error C2501: 'GetDocument": missing decl-specifiers "
If I dont include the header file of view class then the above error is removed but the error of undefined variables remains their.
The error is comming in *View.h file at following point:
public:
CStudentDoc* GetDocument();

mihai
April 22nd, 1999, 08:12 AM
use forward declaration (class className;) instead include directive, or put ifdef,endif into your h.
Sincerely, Mihai

April 23rd, 1999, 01:21 AM
I have the similiar problem and have tried all the solutions suggested by Mihai,
but can't resolve the problem.
#ifdef and #endif are already included by app wizard and forward declaration can't solve the problem.

Everything goes fine but the line where I typecast my view class.


m_strReply = ((CMyView*) m_pParent)->ProcessRequest(m_Editable);




I pass the CMyView* in the dialog ( CDEditor )constructor and assigns it to m_pParent.
like,

CDEditor::CDEditor(CWnd* pParent /*=NULL*/)
: CDialog(CDEditor::IDD, pParent)
{
//{{AFX_DATA_INIT(CDEditor)
//}}AFX_DATA_INIT
m_pParent = pParent;
}

Dave Lorde
April 23rd, 1999, 04:49 AM
Have you got a declaration for CStudentDoc in view.h before the GetDocument declaration? A forward declaration will do:

class CStudentDoc;
CStudentDoc* GetDocument();

Dave