一个最简单的多线程程序,出错了,很郁闷!解决马上给分!在线等.
::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'

解决方案 »

  1.   

    AfxBeginThread的第一个参数直接写PrepareInfo
      

  2.   

    ::AfxBeginThread(PrepareInfo,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 (void *)'也不行啊??老大救救我啊
      

  3.   

    如果PrepareInfo没有在类中定义为static,那么用全局函数
    UINT PrepareInfo(LPVOID pParam)
    如果还不搞定,使用_beginthreadex函数创建thread
    或者CreateThread
    AfxBeginThread会有很多不好处理的东西的,用_beginthreadex吧
      

  4.   

    用(AFX_THREADPROC)PrepareInfo试试
    注意PrepareInfo要是静态函数
      

  5.   

    AfxBeginThread(PrepareInfo,GetSafeHwnd());
      

  6.   

    1、使用全局函数
    2、声明为static函数
      

  7.   

    在头文件里
    UINT  PrepareInfo(LPVOID pParam ) 前 加static 声明
    变成
    static  UINT  PrepareInfo(LPVOID pParam );不过线程里调用的类成员函数也都必须是static 不如声明成全局的线程函数再传指针舒服
      

  8.   

    to hf4057(神仙): "线程里调用的类成员函数也都必须是static "是什么意思?就是说线程函数是静态函数的时候 线程里调用的类成员函数也都必须是static 
    那么线程函数是全局函数的时候有这个要求吗?