UINT ReceiveCtrlPoc(LPVOID pParam)
{
CCSView *SView=(CCSView *)pParam;
if (SView == NULL ||
        !SView->IsKindOf(RUNTIME_CLASS(CCSView)))
    return 1;   // if pObject is not valid
    else
{
  SView->Receive();
  return 0;
}
}CCSView* CSView=new CCSView;
AfxBeginThread(ReceiveCtrlPoc,CSView);我完全按照msdn做的,可是有错误
 error C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'unsigned int (void *)'
是怎么回事

解决方案 »

  1.   

    强制转化一下子
    LPVOID(CSView)
      

  2.   

    同意楼上bluebohe(薄荷) ,AfxBeginThread()函数的第二个参数是一个void*类型,你传递参数的时候强制类型转换一下,如楼上所说!
      

  3.   

    Cserial *m_pSerial;
    m_pSerial=(Cserial*)AfxBeginThread(RUNTIME_CLASS    
                    (Cserial),THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED);
    if(m_pSerial==NULL)
    m_bLineCom=false;
             Cserial是我编的一个线程,它的主函数是Run();
             但是上面的语句怎么进不了Run()函数?
      

  4.   

    定义为DWORD  WINAPI ReceiveCtrlPoc(LPVOID pParam)
    试试
      

  5.   

    应该是第一个参数有问题吧,ReceiveCtrlPoc是全局函数吗?如果是静态成员函数的话要用类名来引用
      

  6.   

    对啊,ReceiveCtrlPoc函数中的参数是LPVOID类型的,你在调用这个函数把实参强制转换以下就行了