d190.bmp.txt

来自「Visual C++通信编程工程实例精解(附盘)」· 文本 代码 · 共 43 行

TXT
43
字号
如读串口、写串口、停止读、停止写等。
    4)创建串口文件句柄。其中参数port表示串口的串口号;参数hWnd表示用来接收消
息的窗口句柄。该函数利用API函数CreateFile0创建一个串口句柄m__hFileHandle。
    5)关闭串口句柄。利用函数CloseHandle()关闭串口句柄m__hFileHandle。
    6)在超时时间内从串口读指定个数的字符。具体代码如下:
190
int CYsComm::ReadIn(PBYTE   lpszInputBuffer,
DWORD dwCountoByte,
    DWORD dwReadTimeOut)
{
    if( m_hFrleHandle—NULL)   //m hFileHandle是串口句柄,如果为空,表明该串口没有打开
    {
    return -1;
    l
    int nRet;
    DWORD dwLastError;
    DWORD dwHandleSignaled;
    HANDLE HandlesToWaitFor[21;
    int iWait=2;
HandlesToWaitFor[01 = m_overlappedRead.hEvent;
HandlesToWaitFor[l] = m_hStopReadEvent;
DWORD dwHaveReaded=0;
if (ReadFile《HANDLE)m_hFileHandle, (LPVOID)lpszInputBuffer,      (DWORD)dwCountoByte,
  (LPDWORD)&dwHaveReaded,    (LPOVERLAPPED)&m_overlappedRead》
f,,只有当数据等待读时才发生
    nRet=l;
    goto Exit;
}
dwLastError= GetLastError();
if (GetLastError()!= ERROR_IO_PENDING)
{
    nRet=-l;,,{卖取串口错误
    goto Exit;
)
dwHandleSignaled = WaitForMultipleObjects(iWait,HandlesToWaitFor,
 FALSE,dwReadTimeOut):
switch(dwHandleSignaled)
{
case WAIT_OBJECT_O :,/等待结束
          {
                  //Time to get the results of the WriteFile
 break;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?