线程的全局函数能成为一个类的成员函数吗?
sky 2003-11-18 11:36:22 我定义了一个创建线程的函数:
int CrtThread()
{
hComWatchThread=CreateThread((LPSECURITY_ATTRIBUTES) NULL,//安全属性
0,//初始化线程栈的大小,缺省为与主线程大小相同
CommProc, //线程的全局函数
0, //此处传入了主框架的句柄
0,
&pThread );
if(hComWatchThread!=NULL)
{
SuspendThread(hComWatchThread);//成功创建则挂起
return 0;
}
else
{
return 1;
}
}
又定义了全局函数DWORD WINAPI CommProc( LPVOID pParam );
现在我希望能够将这两个函数都定义为一个类CbDrv的成员函数,便将此两个函数的生命都加入了类的定义中(.h文件)
int CrtThread();
DWORD WINAPI CommProc( LPVOID pParam );
然后在类的成员函数实现文件(.CPP)文件中实现了这两个函数
int CbDrv::CrtThread();
DWORD WINAPI CbDrv::CommProc( LPVOID pParam );
之后在编译时出错,在以下函数的 (CommProc, //线程的全局函数)处报错
hComWatchThread=CreateThread((LPSECURITY_ATTRIBUTES) NULL,//安全属性
0,//初始化线程栈的大小,缺省为与主线程大小相同
CommProc, //线程的全局函数
0, //此处传入了主框架的句柄
0,
&pThread );
报错的内容为'CreateThread' : cannot convert parameter 3 from 'unsigned long (void *)' to 'unsigned long (__stdcall *)(void *)'
难道线程的全局函数不能是一个类的成员函数吗,请教各位了?