下面有我的代码的一部分:创建Thread类
class MyClass
{
...
HANDLE m_ListenThr;
DWORD WINAPI ListenThread (LPVOID WorkContext);
bool CreateListenThreads();
}
bool MyClass::CreateListenThreads()
{
...
m_ListenThr = CreateThread(NULL, 0, MyClass::ListenThread,(void*)this, 0,&dwThreadId);
}
DWORD WINAPI MyClass::ListenThread (LPVOID WorkThreadContext)
{
MyClass pThis = reinterpret_cast<MyClass*>(WorkThreadContext);
...
}
编译后,我得到这个错误:
error C3867: 'MyClass::ListenThread': function call missing argument list; use '&MyClass::ListenThread' to create a pointer to member
什么,我做错了什么?
您是否尝试将'&MyClass :: ListenThread'作为CreateThread的第三个参数? – imreal 2014-10-05 21:17:00
@imreal是的,我做到了。下一个错误是'错误C2664:'CreateThread':无法将参数3从'DWORD(__stdcall MyClass :: *)(LPVOID)'转换为'LPTHREAD_START_ROUTINE'' – maciekm 2014-10-05 21:21:51