Z.K. wrote:
// in TestView.h
class CMyTest;
class CTestView : public XXX
{
CMyTest* m_pMyTest;
};
I tried that, but as soon as I add
#include "MyTest.h"
I get:
c:\Documents and Settings\##########\My Documents\Visual Studio
Projects\Test\MyTest.h(13): error C2143: syntax error : missing ';'
before '*'
c:\Documents and Settings\##########\My Documents\Visual Studio
Projects\Test\MyTest.h(13): error C2501: 'CMyTest::CTestView' :
missing storage-class or type specifiers
c:\Documents and Settings\##########\My Documents\Visual Studio
Projects\Test\MyTest.h(13): error C2501: 'CMyTest::m_pTestView' :
missing storage-class or type specifiers
c:\Documents and Settings\##########\My Documents\Visual Studio
Projects\Test\TestView.cpp(37): error C2039: 'm_pTestView' : is not a
member of 'CMyTest'
c:\Documents and Settings\##########\My Documents\Visual
Studio Projects\Test\MyTest.h(5) : see declaration of 'CMyTest'
c:\Documents and Settings\##########\My Documents\Visual Studio
Projects\Test\MyTest.h(13): error C2143: syntax error : missing ';'
before '*'
c:\Documents and Settings\##########\My Documents\Visual Studio
Projects\Test\MyTest.h(13): error C2501: 'CMyTest::CTestView' :
missing storage-class or type specifiers
c:\Documents and Settings\##########\My Documents\Visual Studio
Projects\Test\MyTest.h(13): error C2501: 'CMyTest::m_pTestView' :
missing storage-class or type specifiers
c:\Documents and Settings\##########\My Documents\Visual Studio
Projects\Test\MyTest.h(13): error C2143: syntax error : missing ';'
before '*'
c:\Documents and Settings\##########\My Documents\Visual Studio
Projects\Test\MyTest.h(13): error C2501: 'CMyTest::CTestView' :
missing storage-class or type specifiers
c:\Documents and Settings\##########\My Documents\Visual Studio
Projects\Test\MyTest.h(13): error C2501: 'CMyTest::m_pTestView' :
missing storage-class or type specifiers
c:\Documents and Settings\##########\My Documents\Visual Studio
Projects\Test\MyTest.cpp(35): error C2065: 'm_pTestView' : undeclared
identifier
c:\Documents and Settings\##########\My Documents\Visual Studio
Projects\Test\MyTest.cpp(35): error C2227: left of '->m_cstemp' must
point to class/struct/union
TestView.h :
#pragma once
#include "MyTest.h"
class CTestView : public CFormView
{
protected: // create from serialization only
CTestView();
DECLARE_DYNCREATE(CTestView)
public:
enum{ IDD = IDD_TEST_FORM };
// Attributes
public:
CTestDoc* GetDocument() const;
CString m_cstemp;
// Operations
public:
// Overrides
public:
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV
support
virtual void OnInitialUpdate(); // called first time after construct
// Implementation
public:
virtual ~CTestView();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// Generated message map functions
protected:
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnBnClickedButton1();
afx_msg void OnBnClickedButton2();
};
#ifndef _DEBUG // debug version in TestView.cpp
inline CTestDoc* CTestView::GetDocument() const
{ return reinterpret_cast<CTestDoc*>(m_pDocument); }
#endif
You did not do what Scott suggested. Just forward declare the class