读书人

使用CreateThread 时报错函数调用缺

发布时间: 2012-04-10 21:03:56 作者: rapoo

使用CreateThread 时报错,函数调用缺少参数列表
声明:
class AFX_EXT_CLASS UmaConnection
{
public:
pSOCKET_OBJ FindSocketObj(pTHREAD_OBJ pThread,int nIndex);
DWORD WINAPI ServerThread(LPVOID lpParam);
}

定义:
DWORD WINAPI ServerThread(LPVOID lpParam)
{
调用了FindSocketObj ;
}
::CreateThread(NULL,0,ServerThread,pThread,0,NULL);
其中ServerThread调用了FindSocketObj ;

运行时报错 ServerThread”: 函数调用缺少参数列表
和 FindSocketObj找不到标识符

请问该如何解决 ,关键是第二个错误

[解决办法]
首先ServerThread这个函数要么定义成全局,要么定义成类的静态成员函数
如果是全局,就把UmaConnection这个类的指针作为参数传入ServerThread,然后用这个指针去调用FindSocketObj。
如果线程函数是静态,那么又分2种,FindSocketObj是静态,可以不传入参数,UmaConnection::FindSocketObj这样调用,如果FindSocketObj不是静态那就要传类指针,通过指针调用
另外pThread是神马东东,如果你还要传入额外的参数,就封装个结构体。

读书人网 >VC/MFC

热点推荐