首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

求高人指点一下!怎么理解这里的return(dwbytesRead),返回已经读取的数据长度有什么作用

2012-03-19 
求高人指点一下!如何理解这里的return(dwbytesRead),返回已经读取的数据长度有什么作用!DWORD APIENTRY IO

求高人指点一下!如何理解这里的return(dwbytesRead),返回已经读取的数据长度有什么作用!
DWORD APIENTRY IOP_Read(int port, LPSTR buffer, int count) 
{
  BOOL fReadStat ;
  DWORD dwError;
  DWORD dwBytesRead ;  

  fReadStat = ReadFile( COMDEV[port], buffer, count,
&dwBytesRead, &READ_OS ) ;
  if (!fReadStat)
  {
  if (GetLastError() == ERROR_IO_PENDING)
  {
  while(!GetOverlappedResult( COMDEV[port],
  &READ_OS, &dwBytesRead, TRUE ))
  {
  dwError = GetLastError() ;
  if (dwError == ERROR_IO_INCOMPLETE)
  return (dwBytesRead) ;
  else
  return (FAIL) ;  
  }
  }
  else
  return (FAIL) ;
  }  
  return (dwBytesRead) ;
}

[解决办法]
作用就是返回实际读取的数据字节数,因为“文件”操作中经常出现实际读取的字节数与想读取的字节数不同的情况。
[解决办法]
返回实际读到的字节数。在串口通信中,并非所有操作都能成功,你可能想读取100个字节,但是,如果串口线断开或者其他原因,你实际只读到10个字节,因此需要知道实际读取的字节数,在你的程序中进行判断,以确定操作是否成功。

热点排行