?? d047.bmp.txt
字號:
volatile HANDLE m_hCom;
int m_nBaud;
int m_nDataBits;
int m_nParity;
CString m_strPort;
int m_nStopBits;
int m_nFlowCtrl;
BOOL m_bEcho;
BOOL m_bNewLine;
//串口句柄
//波特率
||售芷瞳
,/校驗位
//串口號
||停止譴
//流控制選項
/是否在本地回顯
,,是否自動換行
上面有些變量是用volatile關鍵字聲明的,這是為下面建立輔助線程準備的。當兩個線
程都要用到某一個變量且該變量值會改變時,應該用volatile聲明,該關鍵字的作用是防止
優化編譯器把變量從內存裝入CPU寄存器中。如果變量被裝入寄存器,那么兩個線程有可
能一個使用內存中的變量,另一個使用寄存器中的變量,這會造成程序的錯誤執行。
成員m_bConnected用來表明當前是否存在一個通信連接。m_hTermWnd用來保存視圖
的窗口句柄。m_hPostMsgEvent事件對象用于WM__ COMMNOTIFY消息的允許和禁止。
m_pThread用來指向AfxBeginThread創建的CWinThread對象,以便對線程進行控利。
OVERLAPPED結構m_osRead和m_osWrite用于串口的重疊讀/寫,程序應該為它們的hEvent
成員創建事件句柄。
然后,為3個菜單命令函數添加相應的代碼:
,/串口連接
void CTermDoc::OnCommConnect0
{
if( !OpenConnection0)
AfxMessageBox(”無法建立串口連接”);
)
,/斷開串口連接
void CTermDoc::OnCommDisconnect0
{
CloseConnection();
}
void CTermDoc::OnCommSettings0
{
CSetupDlg dlg;
CString str;
dlg.m_bConnected = m_bConnected;
dlg.m_strPort = m_strPort;
str.Format("%d", m_nBaud);
dlg.m_strBaud = str;
str.Format(" % d", m_nDataBits);
dlg.m_strDatabits = str;
47
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -