说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

我的原码,错在何处???请指正!!!

编辑:说三道四文库 发布时间:2018-04-23 05:37
HTML文档下载 WORD文档下载 PDF文档下载
两个问题:如果读的话怎么得到缓冲区的指针,还有wrtemp 的定义和使用对不对??


各个变量定义省略了

#include"winbase.h"
///写缓冲区的代码
CHAR *wrtemp[10]
wrtemp ="123";
  hComm=CreateFile("COM1",
GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,
NULL);
  if(hComm==INVALID_HANDLE_VALUE)
  {
AfxMessageBox("open com1 failed!");
dwError=GetLastError();
  } 
//////initial the  comm
setre= SetupComm(hComm,128,128);
if(setre!=TRUE)
AfxMessageBox("SET failed!");
//清干净输入、输出缓冲区 
  PurgeComm( hComm, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR ); 
  dwlength=ComStat.cbOutQue ;
 rdlength=ComStat.cbInQue ;
 //设置超时结构
 TimeOuts.ReadIntervalTimeout=1000;
 TimeOuts.ReadTotalTimeoutMultiplier =500;
 TimeOuts.ReadTotalTimeoutConstant= 5000;
 TimeOuts.WriteTotalTimeoutConstant =5000;
 TimeOuts.WriteTotalTimeoutMultiplier =500;
 SetCommTimeouts(hComm,&TimeOuts);
 GetCommState(hComm,&dcb);
 //设置DCB 结构
 dcb.BaudRate =2400;
 dcb.ByteSize =8;
 dcb.Parity =NOPARITY;
 dcb.StopBits =1;
 dcb.fParity =FALSE;
 SetCommState(hComm,&dcb);
 /////
wrnum=0;
 if(!WriteFile(hComm,wrtemp,2,&wrnum,&lpOverlapped))
 {   
 GetOverlappedResult(hComm,&lpOverlapped,&wrnum,TRUE);
 if (GetLastError()!= ERROR_IO_PENDING)
{
         // some other error occurred while reading the file
          AfxMessageBox("Read com1 FAILED");
         //ExitProcess(0);
}
 }
 CMYCOMMDlg::m_writestr.Format("%c",wrtemp);
CMYCOMMDlg::UpdateData (FALSE);  
::CloseHandle(hComm);
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘