大家帮忙啊?

解决方案 »

  1.   

    ThreadFunc函数是CMainFrame的成员函数?  class B;class A{
    public:
    void CallThread(){
         ::_beginthread(&B::ThreadFunc,0,NULL);
         }
    };class B{
    public:
    static VOID ThreadFunc(PVOID){ cout<<" act of mine ..."<<endl;}
    };int main()
    {
     A a; a.CallThread(); //ok!
     return 0;
    }
      

  2.   

    看看这个:
    http://expert.csdn.net/Expert/TopicView2.asp?id=837099&datebasetype=now
      

  3.   

    我对 systree() 说的"使用裸函数等技术来自己调整栈" 很感兴趣!!高手出现总是惊鸿一瞥。
      

  4.   

    to sans(sans) 
        在静态成员函数调用的非静态函数中可以使用非静态数据成员吗?
    我试了试,好像是不能?
      

  5.   

    是的,可以,但必须定义为静态成员函数。
    但不能访问非静态数据成员。高明的做法是传递一个this指针,那么通过强制转型之后可以访问类的内部成员函数,那么你就可以访问非静态数据成员了。
    可以给你例子:Class ThreadObject
    {
    public:
          ThreadObject();
          void StartThread();
    static DWORD WINAPI ThreadFunc(LPVOID param);
          ...................protected:
         virtual DWORD ThreadMemberFunc();//定义为可重载的,这样所有派生类都可以重载该函数产生线程。
          ........
    }void ThreadObject::StartThread()//注意该函数的编写
    {
         _beginthreadex(NULL,
                         0,
                        (PBEGINTHREADEX_THREADFUNC)ThreadObject::ThreadFunc,
                        (LPVOID)this,//传递this指针
                         .......);
    }
    DWORD WINAPI ThreadObject::ThreadFunc(LPVOID param)
    {
         ThreadObject * pto = (ThreadObject)param //此处是比较高明的做法
         return pto->ThreadMemberFunc();
    }
    void main()
    {
          ThreadObject obj;
          obj.StartThread();
    }这个例子通过传递this指针间接访问了类的非静态成员,楼主可以参考