在MFC 程序中创建多线程,
bool CSearchLog::StartConn()
{
if( strlen(m_Sip)==0 || m_Sport<0)
return false;
DWORD dwID = 0;
m_CliThread=CreateThread(NULL,
0,
(LPTHREAD_START_ROUTINE)ClientThread,//不知道这有什么问题?
(LPVOID)this,
0,
&dwID);
if(m_CliThread==NULL)
return false;
return true;
}
编译说 error C2440: 'type cast' : cannot convert from '' to 'unsigned long (__stdcall *)(void *)'
        None of the functions with this name in scope match the target type不知道什么问题从来没有碰见过,是不是什么文件没有include,请赐教

解决方案 »

  1.   

    static DWORD WINAPI ClientThread(LPVOID lParam);//声明为类的静态成员函数
    m_CliThread=CreateThread(NULL,
    0,
    ClientThread,//调用
    this,
    0,
    &dwID); 
      

  2.   

    DWORD WINAPI CSearchLog::DelayQuery(LPVOID lparam) //实现声明的线程函数
    {
    //do something 
    return 0;
    }
      

  3.   

    LPTHREAD_START_ROUTINE是指向名为ThreadProc函数的指针:
    DWORD WINAPI ThreadProc(
      LPVOID lpParameter   // thread data
    );
    检查你的ClientThread声明是不是和ThreadProc格式匹配
      

  4.   

    Threadproc 格式  1楼说的对 
    线程函数不应该属于 某个对象