我用DWORD WINAPI workThread(LPVOID lParam)定义了一个线程,可在createthread时提示无法将参数3从DWORD(LPVOID)转化为LPTHREAD_START_ROUTINE,郁闷,高不明白!!
我的createthread函数 为 hThread = CreateThread(NULL,0,workThread,&dwThrdParam,0,&threadID);
请给于指点!!

解决方案 »

  1.   

    HANDLE CreateThread(
      LPSECURITY_ATTRIBUTES lpThreadAttributes,  // pointer to security attributes
      DWORD dwStackSize,                         // initial thread stack size
      LPTHREAD_START_ROUTINE lpStartAddress,     // pointer to thread function
      LPVOID lpParameter,                        // argument for new thread
      DWORD dwCreationFlags,                     // creation flags
      LPDWORD lpThreadId                         // pointer to receive thread ID
    );
    你的两个参数调错了
    hThread = CreateThread(NULL,0,workThread,NULL,&dwThrdParam,&threadID);
      

  2.   


    hThread = CreateThread(NULL,0,workThread,&dwThrdParam,0,&threadID);
    改为
    hThread = CreateThread(NULL,0,
                          (LPTHREAD_START_ROUTINE)workThread,
                          &dwThrdParam,0,&threadID);就可以了。
      

  3.   

    不行的话可以强制转换试试hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)workThread,&dwThrdParam,0,&threadID);
      

  4.   

    hThread = CreateThread(NULL,0,workThread,&dwThrdParam,0,&threadID);
    没有问题,用LPTHREAD_START_ROUTINE强制转换
    hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE )workThread,&dwThrdParam,0,&threadID);
      

  5.   

    强制转换可以!
    hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)workThread,&dwThrdParam,0,&threadID);