在照着书编一个 双机间 串口通讯  到CreateThread() 怎么也不对了函数是这样的
void CPC2PCView::OnOpencom()
{
hCom=CreateFile(myCom,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,NULL);
if(hCom!=INVALID_HANDLE_VALUE)
{
SetupComm(hCom,1500,1500);
DCB myDCB;
GetCommState(hCom,&myDCB);
myDCB.BaudRate=myBaudRate;
myDCB.fBinary=TRUE;
myDCB.fParity=myfParity;
myDCB.ByteSize=8;
myDCB.Parity=myParity;
myDCB.StopBits=ONESTOPBIT;
blnOpened=true;
DWORD dwParam;
if(!SetCommMask(hCom,EV_RXCHAR|EV_TXEMPTY))
{
AfxMessageBox("建立事件掩码失败!");
}
hThreadEvent=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadProcEvent,&dwParam,0,&dwThreadID);
if(hThreadEvent==INVALID_HANDLE_VALUE)
{
AfxMessageBox("事件线程创建失败!");
}
fEventRun=true;
bytActStatus=10;
bytSendStatus=0;
bytRcvStatus=0;
bytResendCount=0;
uintStxCurNo=0;
}
else
{
AfxMessageBox("创建串口失败!");
}
}这里的第三个参数怎么设置?
hThreadEvent=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadProcEvent,&dwParam,0,&dwThreadID);全局变量声明是这样的
HANDLE hCom;
HANDLE hThreadEvent;
DWORD ThreadProcEvent(LPVOID pParam);
bool fEventRun;
DWORD dwThreadID;
HWND hWnd;
OVERLAPPED Eol={0};
OVERLAPPED Wol={0};
OVERLAPPED Rol={0};
DWORD dwTimeoutValue;请问高手 这第三个参数应该怎么设置?

解决方案 »

  1.   

    DWORD __stdcall ThreadProcEvent(LPVOID pParam); 
      

  2.   

    本来的BUG是
    PC2PCView.obj : error LNK2001: unresolved external symbol "unsigned long __cdecl ThreadProcEvent(void *)" (?ThreadProcEvent@@YAKPAX@Z)
    改成DWORD __stdcall ThreadProcEvent(LPVOID pParam); 后
    PC2PCView.obj : error LNK2001: unresolved external symbol "unsigned long __stdcall ThreadProcEvent(void *)" (?ThreadProcEvent@@YGKPAX@Z)谢谢了 可是还是不行啊