?? threadcomm.cpp
字號:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "ThreadComm.h"
#include "UnitMain.h"
#pragma package(smart_init)
__fastcall ThreadComm::ThreadComm(bool CreateSuspended)
: TThread(true)
{
if(CreateSuspended==false)
Resume();
}
//---------------------------------------------------------------------------
void __fastcall ThreadComm::Execute()
{
DWORD dwEvtMask,dwTransfer;
OVERLAPPED os;
memset(&os,0,sizeof(OVERLAPPED));
os.hEvent= CreateEvent(
NULL, /* 無安全屬性*/
TRUE, /* 人工復位事件*/
FALSE, /* 初始化為非信號狀態 */
NULL /* no name */
);
if(!SetCommMask(FormMain->COMX->hCom, EV_RXCHAR))
{
MessageBox(NULL,"設置通信設備控制塊數據結構操作異常!","錯誤",MB_OK);
return;
}
while(!Terminated)
{
dwEvtMask=0;
if (!WaitCommEvent(FormMain->COMX->hCom, &dwEvtMask, &os))
{
if(ERROR_IO_PENDING==GetLastError())
{
if(GetOverlappedResult(FormMain->COMX->hCom,&os,&dwTransfer,TRUE))//;
os.Offset+=dwTransfer;
}
}
if ((dwEvtMask & EV_RXCHAR)==EV_RXCHAR)
{
Synchronize(CommMessage);
}
}
CloseHandle(os.hEvent);
MessageBox(NULL,"All Done","Info",MB_OK);
}
void __fastcall ThreadComm::CommMessage(void)
{
FormMain->COMX->ReadCommToBuffer();
}
//---------------------------------------------------------------------------
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -