.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??
这个参数怎么办?
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??
这个参数怎么办?
=================
线程的处理函数必须是全局函数或是类的静态成员函数,因为类的成员函数的参数会多加一个this指针,指向类实例本身所以编译无法通过
类的成员函数有this指针(在编译的时候自动加入的)比如:
Cobject::f(LVOID p)实际上是:Cobject::f(LVOID p, Cobject* pObject)这显然不能作为线程函数变成静态成员函数的就没这个问题了。