hReadThread=CreateThread(NULL,0,ReadPortThread,0,0,NULL);
dwError=GetLastError();
if(hReadThread)
{
CString str;
str.Format(_T("CreateThread done NO.%d"),dwError);
MessageBox(str,TEXT("NOTE"),MB_OK);
                }
MessageBox 可以显示,说明hReadThread不是NULL,但是GetLastError()得到的是87 参数错误,  
为什么???

解决方案 »

  1.   

    The parameter is incorrect. 
    ReadPortThread有没有声明
      

  2.   

    声明了啊!!!
    我用控件BUTTON 来触发上面的代码,,,难道不可以吗
      

  3.   

    看不出有任何问题。
    hReadThread=CreateThread(NULL,0,ReadPortThread,0,0,NULL);  //第四个参数是传给线程的,是不是这个参数错了?
      

  4.   

    可以在线程函数中加一个显示,这样才可以判断线程是不是运行起来了;如 3 楼所说,这个错误代码可能是其它 API 调用产生的,比如说你刚创建的这个线程中的 API 调用。