DWORD WINAPI Cfun::TalkThread(LPVOID p) //静态函数
{ CSBSession pTalkSession;
pTalkSession.Create();  //出错
}
class CSBSession 
{
public:
        void Create();
};

解决方案 »

  1.   

    http://search.csdn.net/Expert/topic/1084/1084257.xml?temp=7.412356E-02
      

  2.   

    用友元的函数试一下,加上关键字friend
      

  3.   

    CSBSession m_SBSession;
    Cfun::CreateSessionThread()
    {
        CreateThread(..,&m_SBSession,..);//将m_SBSession作为参数传入
    }
    DWORD WINAPI Cfun::TalkThread(LPVOID p) 
    { CSBSession* pTalkSession = (CSBSession*)p;
    pTalkSession->Create(); 
    }class CSBSession 
    {
    public:
            void Create();
    };
      

  4.   

    pTalkSession.Create();  //出错
    这并不是说不能调,而是create函数有问题,可以跟踪一下
      

  5.   

    实现这个有几个办法:
    1,申明为友元函数,
    2,将对象指针传递进去,然后在线程函数中,强制转换(这个有时用起来会有问题)
    3,将handle传递进去,然后需要调用时,通过handle传递出来,在外面调用类的函数(这个方法推荐使用)
      

  6.   

    已经是public了,所有不用申明友元。
    问题可能出在Create的代码中。
      

  7.   

    to: oyljerry(勇敢的心)
    3,将handle传递进去,然后需要调用时,通过handle传递出来,在外面调用类的函数(这个方法推荐使用)怎么写?
      

  8.   

    实在不行 就用全局的变量
    CSBSession* pTalkSession;
      

  9.   

    flyelf(空谷清音) 和  DentistryDoctor(牙科医生)说CREATE有问题有些道理,我用其他函数调用确实没问题,确实是调用CAsyncSocket的Create()出问题但程序启动时也调用了AfxSocketInit(),为什么不能Create呢class CSBSession : public CAsyncSocket
    {
     
    ////
    }难道到了
      

  10.   

    既然有了AfxSocketInit,还creat干嘛?
    creat到底是个什么错误呢?、
      

  11.   

    create继承了 CAsyncSocket的一个函数创建socket
      

  12.   

    查查m_SBSession变量的生存周期,是否在线程创建后就释放了
      

  13.   

    对象指针怎么获得?phidix(phidix)