我在NetWatcherViewerView.h中定义了一个成员变量:
UINT m_uiChannelIndex;
然后我要在MyStatic.cpp中调用这个成员变量,所以我在MyStatic.cpp头上加上一句:#include "NetWatcherViewerView.h"
但是为什么我在MyStatic.cpp中用这个成员变量时,还是提示说没定义呢?error C2065: 'm_uiChannelIndex' : undeclared identifier

解决方案 »

  1.   

    先获得框架类指针,再获视图类指针,用视图类指针调用m_uiChannelIndex
      

  2.   

    获得视图类指针方法:
    if SDI:AfxGetMainWnd()->GetActiveView() 
    -if MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView() 
    CNetWatcherViewerView *pView=(CNetWatcherViewerView *)((CMainFrame *)AfxGetMainWnd())->GetActiveView() ;再用PView->m_uiChannelIndex;
      

  3.   

    我感觉应该可以,但是为什么还是有错误呢!
    error C2065: 'CMainFrame' : undeclared identifier
    error C2059: syntax error : ')'
      

  4.   

    添加头文件看看
    #include "MainFrm.h"
      

  5.   

    MyStatic.cpp文件里包含顺序是这样的:
    #include "NetWatcherViewerView.h"
    #include "MyStatic.h"MyStatic.cpp里调用,这样调用顺序错了吗?
    CMyStatic::CMyStatic()
    {
    CNetWatcherViewerView *pView=(CNetWatcherViewerView *)((CMainFrame *)AfxGetMainWnd())->GetActiveView() ;
    PView->m_uiChannelIndex = 1; //default channel 1;
    ------

    }
      

  6.   

    #include "MainFrm.h"CMainFrame *pwnd=(CMainFrame*)::AfxGetApp()->m_pMainWnd;
    CNetWatcherViewerView *pView=(CNetWatcherViewerView *)pwnd->GetActiveView();