tdlg.cpp  
 
 
WORD  w;  
 
           UINT  i;  
 
           w=_beginthreadex(NULL,0,MyProc2,this,0,&i);  
 
 
 
UINT  WINAPI  CTDlg::MyProc2(LPVOID  l)  
{  
           AfxMessageBox开启线程2");  
           return  1;  
}  
编译时提示cannot  convert  parameter  3  from  'unsigned  int  (void  *)'  to  'unsigned  int  (__stdcall  *)(void  *)'  
 
如果MyProc2做为全局函数则可以通过

解决方案 »

  1.   

    类的成员函数不能作线程函数,只有全局函数或是静态成员变量可以,因为成员函数如你上面那个UINT WINAPI CTDlg::MyProc2(LPVOID l),看起来它只有一个参数,但是实际上它还有一个指针参数this ,用来指明这个函数是属于具体哪一个对象的函数,所以有两个参数,所以不行,上面的出错信息也说出了这个问题。
      

  2.   

    UINT  WINAPI static CTDlg::MyProc2(LPVOID  l)
    这样也能过。 线程函数不能为非静态的类的成员函数。