一个最简单的多线程程序,出错了,很郁闷!解决马上给分!在线等.
::AfxBeginThread(PrepareInfo(NULL),NULL,THREAD_PRIORITY_NORMAL,
0,0,NULL );
UINT CQuickSearch::PrepareInfo(LPVOID pParam )
{
...
}
错误代码如下:
error C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'unsigned int'
::AfxBeginThread(PrepareInfo(NULL),NULL,THREAD_PRIORITY_NORMAL,
0,0,NULL );
UINT CQuickSearch::PrepareInfo(LPVOID pParam )
{
...
}
错误代码如下:
error C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'unsigned int'
0,0,NULL );UINT CQuickSearch::PrepareInfo(LPVOID pParam )error C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'unsigned int (void *)'也不行啊??老大救救我啊
UINT PrepareInfo(LPVOID pParam)
如果还不搞定,使用_beginthreadex函数创建thread
或者CreateThread
AfxBeginThread会有很多不好处理的东西的,用_beginthreadex吧
注意PrepareInfo要是静态函数
2、声明为static函数
UINT PrepareInfo(LPVOID pParam ) 前 加static 声明
变成
static UINT PrepareInfo(LPVOID pParam );不过线程里调用的类成员函数也都必须是static 不如声明成全局的线程函数再传指针舒服
那么线程函数是全局函数的时候有这个要求吗?