.cpp中:
CreateThread(NULL,0,MyAnalysThreadProc,NULL,0,NULL);
DWORD WINAPI CTemtestDlg::MyAnalysThreadProc(LPVOID lpParameter)
{
......
return 0;
}
.h 中:
DWORD WINAPI MyAnalysThreadProc(LPVOID lpParameter);
 error C3867: 'CTemtestDlg::MyAnalysThreadProc': function call missing argument list; use '&CMyTemtestDlg::MyAnalysThreadProc' to create a pointer to member让我加个'&CMyTemtestDlg::MyAnalysThreadProc??
这个参数怎么办?

解决方案 »

  1.   

    //静态函数。static DWORD WINAPI CTemtestDlg::MyAnalysThreadProc(LPVOID lpParameter) 
      

  2.   

    //必须定义为静态成员函数。.h 中: static DWORD WINAPI MyAnalysThreadProc(LPVOID lpParameter); 
      

  3.   

    能解释以下为什么会这样吗?
    =================
    线程的处理函数必须是全局函数或是类的静态成员函数,因为类的成员函数的参数会多加一个this指针,指向类实例本身所以编译无法通过
      

  4.   


    类的成员函数有this指针(在编译的时候自动加入的)比如:
    Cobject::f(LVOID p)实际上是:Cobject::f(LVOID p, Cobject* pObject)这显然不能作为线程函数变成静态成员函数的就没这个问题了。