在app类中,声明了若干全局变量,比如下面:
CMyApp theApp;
MTestMgr    theTestMgr;
CTimeSync   theTimeSync;
MSockComm   theSockComm;
CMFlowProc theFlowProc;
MReporter t theReporter;
如果想在新开的线程里面用MTestMgr类成员函数。可以直接在新开线程所在的类里面添加一个成员变量MTestMgr m_testmgr吗? 如果可以的话,怎么进一步将m_testmgr和全局变量关联起来呢?

解决方案 »

  1.   

    (CMainFrame*)(AfxGetApp()->GetMainWnd())->theTestMgr;
    ...
      

  2.   

    通过指针吧,在线程类中加一个MTestMgr *m_ptestmgr吗,create线程之前将全局MTestMgr 的指针赋值给m_ptestmgr
      

  3.   

    extern MTestMgr m_testmgr;表示m_testmgr在其它地方定义了
    然后用m_testmgr,
      

  4.   

    对:通过指针吧,在线程类中加一个MTestMgr *m_ptestmgr吗,create线程之前将全局MTestMgr 的指针赋值给m_ptestmgr
    线程处理函数的参数,不是最好由pParam传递进去吗? 这样相当于传参数进去,会不会有影响? 
    这种传参数的方法,和由pParam传参数的方法,有什么不同?
      

  5.   

    如果用extern MTestMgr m_testmgr的话,就是说我要用m_testmgr里面的函数,只能访问静态变量了? 有没有办法解决这个问题呢?
      

  6.   

    extern 类名 先前定义的类变量.