


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、其于MFC勺串口調(diào)試助手編輯過程、新建打開VC6.0文件一新建工程-HMFCAppWiard(exe)位置(選擇保存工程位置)一工程名稱(輸入工程名XXXX一確定-軍基本對話框一kF一步下一4下土選JCXXXXDlg完成確定一在生成的基本對話框內(nèi)將不需要按鈕及提示框(自動生成的“確定”“取消”及提示框)刪除或修改使用,至此基本框架完成如下圖:1®V刃皆ICWuluijd?9|CSrornmT上砒口加,I""rl-ssmrmhe-rsCmmTr-nlDIga-1%幼籃<b£121擇wieIT略m怵暮折=LJDialog-LJkon<一_J由口叫
2、Iable卡LJVersioraBJOat;,.|iaReu.|£File.就Fx詣?wù)?;、?一件一中教次&艾用中童找茫舞X典。曲/:口T-.1*fthnarxa基本框架-I屆B日此控件'(標志)是下面步驟添加進來的串口控件5=1文學(xué)刃司悔宵些音M即螺心工只口)甬口e第責(zé)刑;、往生成的基本框架中添加控件1、因為控件列表框內(nèi)沒有串口通信用到的通信控件,所以要先添加到控件列表框內(nèi)再將控件添加到基本框內(nèi)使用,步驟如下:菜單欄程添軸日到工程ComponentsandcontrolsRegisteredActiveXControls選擇"MicrosoftCommun
3、icationsControtr*version-6.0"Insert確定OK關(guān)閉此子窗口完成添加操作標志如上圖所示。2、將剛才添加添加到控件列表框內(nèi)的串口控件添加到基本框架內(nèi)點擊控件列表框內(nèi)的串口控件,此時光標變?yōu)椤笆毙危诨究蚣軆?nèi)隨意劃取一矩形區(qū)域,即可以添加串口控件,不需要修改此控件的大小及位置,因為程編譯運行后此控件是看不到的,步驟結(jié)果如下圖:3、繼續(xù)往基本框架內(nèi)添加用于編輯發(fā)送數(shù)據(jù)的輸入編輯框及輸出編輯框,同理選擇控件列表框內(nèi)的“編輯框控件”,以相同的操作即可添加兩個編輯窗口及一個按紐控件如下圖所示:選擇其中任意一個作為輸入編輯框及輸出編輯這兩個窗口需要修改大小及位置,
4、因為程序運行后將會顯示而串口通信控件則不顯示,上圖是運行后的效果。4、對以上四個控件編程步驟如下:a、右擊串口通信控件一建立類向?qū)embervariablesControlIDS中選擇IDC_MSCOMM1ddvariable-Membervariablename中輸入控件變量名m_ctrlComm(變量名可以隨意選取,但程序中應(yīng)與所取變量名一致)一OK定b、右擊編輯框、屬性、常規(guī)、ID:中輸入ID號,此編輯框用于接收顯示數(shù)據(jù)的其ID號為IDC_EDIT_RXDATA可以隨意選取,但程序中應(yīng)與所取ID號一致),再在此窗口的樣式中勾選”多行”,同時將“自動水平滾動(T)”勾選去掉,再勾選“垂直
5、滾動(V)”,此勾選操作是用于垂直多行顯示的,按回車后即可輸入;同理右擊另一編輯框輸入ID號為IDC_EDIT_TXDAT律匕編輯框用于編輯發(fā)送數(shù)據(jù)的,同樣也選上用于垂直多行顯示,發(fā)送框可以不用垂直多行顯示;再為按鈕控件添加ID號,為IDC_BUTTON_MANUALSEND并將標題中的“Buttonl”改為“發(fā)送”,功能是按一次就把發(fā)送編輯框中的內(nèi)容發(fā)送一次。G為以上兩個編輯框添加變量,與串口通信控件一樣添加,為IDC_EDIT_RXDAT麻加CString型變量m_strRXData;為IDC_EDIT_TXDAT席加CString型變量m_strTXData。說明:m_strRXData
6、和m_strTXData分別用來放入接收和發(fā)送的字符數(shù)據(jù)。以添加串口事件消息處理函數(shù)OnComm()打開ClassWizard>MessageMaps,選擇IDC_MSCOMM取擊消息OnComm務(wù)彈出的對話框中將函數(shù)名改為OnComM好記而已)OK這個函數(shù)是用來處理串口消息事件的,如每當串口接收到數(shù)據(jù),就會產(chǎn)生一個串口接OnComm()收數(shù)據(jù)緩沖區(qū)中有字符的消息事件,我們剛才添加的函數(shù)就會執(zhí)行,我們在函數(shù)加入相應(yīng)的處理代碼就能實現(xiàn)自已想要的功能了。在函數(shù)中加入如下代碼:提示1:此句以下才是我們要添加的語句代碼段1:voidCScommTestDlg:OnComm()/TODO:Addy
7、ourcontrolnotificationhandlercodehere.二VARIANTvariant_inp;/定義一個VARIANT類對象COleSafeArraysafearray_inp;/定義一個COleSafeArray對象LONGlen,k;BYTErxdata2048;/設(shè)置BYTE數(shù)組AN8intterthatisnotsigned.CStringstrtemp;if(m_ctrlComm.GetCommEvent()=2)/事件值為2表示接收緩沖區(qū)內(nèi)有數(shù)據(jù)/以下你可以根據(jù)自己的通信協(xié)議加入處理代碼variant_inp=m_ctrlComm.GetInput();/讀緩
8、沖區(qū)safearray_inp=variant_inp;/VARIANT型變量轉(zhuǎn)換為ColeSafeArray型變量len=safearray_inp.GetOneDimSize();for(k=0;k<len;k+)(safearray_inp.GetElement(&k,rxdata+k);/轉(zhuǎn)換為BYTE型數(shù)組提示2:此二句是下面用于是否是十六進制發(fā)送的,暫時可以不用理會for(k=0;k<len;k+)/將數(shù)組轉(zhuǎn)換為Cstring型變量(BYTEbt=*(char*)(rxdata+k);/if(m_ctrlHexSend.GetCheck()/如果是HEX示則轉(zhuǎn)為
9、16進制=>/strtemp.Format("%02x",bt);/將16進制數(shù)送入臨時變量strtemp存/elsestrtemp.Format("%c",bt);/將字符送入臨時變量strtemp存放m_strRXData+=strtemp;/加入接收編輯框?qū)?yīng)字符串UpdateData(FALSE);/更新編輯框內(nèi)容(主要是接收編輯框中的)到目前為止還不能在接收編輯框中看到數(shù)據(jù),因為我們還沒有打開串口,但運行程序不應(yīng)該有任何錯誤,不然,你肯定哪兒沒看仔細,因為我是打開VC6對照著做一步寫一行的,運行試試。沒錯吧?那么做下一步:E、打開串口和設(shè)
10、置串口參數(shù)你可以在你需要的時候打開串口,例如在程序中做一個開始按鈕,在該按鈕的處理函數(shù)中打開串口?,F(xiàn)在我們在主對話框的CSCommTestDlg:OnInitDialog()打開串口,加入如下代碼:代碼段2:BOOLCSCommTestDlg:OnInitDialog()CDialog:OnInitDialog();/Add"About."menuitemtosystemmenu./IDM_ABOUTBOXmustbeinthesystemcommandrange.ASSERT(IDM_ABOUTBOX&0xFFF0)=IDM_ABOUTBOX);ASSERT(ID
11、M_ABOUTBOX<0xF000);CMenu*pSysMenu=GetSystemMenu(FALSE);if(pSysMenu!=NULL)CStringstrAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if(!strAboutMenu.IsEmpty()pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);提示4:此5句是我們下面要用到的暫時可以不用理會/Settheiconforthi
12、sdialog.Theframeworkdoesthisautomatically/whentheapplication'smainwindowisnotadialogSetIcon(m_hIcon,TRUE);/SetbigiconSetIcon(m_hIcon,FALSE);/Setsmallicon/TODO:Addextrainitializationhere/m_ComboBox.SetCurSel(0);/打開軟件時串口選擇框默認顯示COM1/1二提示3:此句以下才是我們要添加的語句m_BaudRate_M.SetCurSel(0);/打開軟件時波特率選擇框默認顯示9600
13、m_Date_Select_M.SetCurSel(0);/打開軟件時數(shù)據(jù)位選擇框默認顯示8m_StopBit_M.SetCurSel(0);/打開軟件時停止位選擇框默認顯示1m_ParityCheck_M.SetCurSel(0);/打開軟件時奇偶校驗選擇框默認顯示無校驗N/下面if語句用于打開默認串口/*/if(m_ctrlComm.GetPortOpen()(m_ctrlComm.SetPortOpen(FALSE);/關(guān)閉串口COM伸口m_ctrlComm.SetCommPort(1);/打開軟件時默認使用if(!m_ctrlComm.GetPortOpen()(m_ctrlComm.
14、SetPortOpen(TRUE);/打開串口else(AfxMessageBox("cannotopenserialport");/*/m_ctrlComm.SetSettings("9600,n,8,1”);/打開軟件時端口設(shè)置默認為波特率9600,無校驗位,8位數(shù)據(jù),1位停止位m_ctrlComm.SetInputMode(1);/1:表示以二進制方式檢取數(shù)據(jù)m_ctrlComm.SetRThreshold(1);/參數(shù)1表示每當串口接收緩沖區(qū)中有多于或等于1個字符時將引發(fā)一個接收數(shù)據(jù)的OnComi#件m_ctrlComm.SetInputLen(0);/設(shè)
15、置當前接收區(qū)數(shù)據(jù)長度為0m_ctrlComm.GetInput();/先預(yù)讀緩沖區(qū)以清除殘留數(shù)據(jù)returnTRUE;/returnTRUEunlessyousetthefocustoacontrolF、發(fā)送數(shù)據(jù),先為發(fā)送按鈕添加一個單擊消息即BN_CLICKED處理函數(shù),打開ClassWizard>MessageMaps,選擇IDC_BUTTON_MANUALSENBN_CLICKE密加OnButtonManualsend()函數(shù),并在函數(shù)中添加如下代碼:代碼段3:voidCSCommTestDlg:OnButtonManualsend()(/TODO:Addyourcontrolno
16、tificationhandlercodehereUpdateData(TRUE);/取取編輯框內(nèi)容m_ctrlComm.SetOutput(COleVariant(m_strTXData);/發(fā)送數(shù)據(jù)此時運行程序,在發(fā)送編輯框中隨意輸入數(shù),單擊發(fā)送按鈕,若出錯則修改后再測試,直到成功再進行以下操作。5、添加兩個“組框”或“靜態(tài)文本”控件,調(diào)整位置及大小,在標師處輸入提示文字,這兩個控件不用編程,效果如下圖:6、添加5個“靜態(tài)文本”控件并由屬性修改其標題,均不用編程,效果如下圖:7、添加5個“組框”控件,效果如下圖:逐一對各個組框?qū)傩跃庉嬋缦?串口號:常規(guī)ID:IDC_COMBO_CommSe
17、lect數(shù)據(jù)輸入列表框項目(NN:COM1COM2COM3COMI4COM5COM6COM7COM8COM9(注意每輸入一個數(shù)據(jù)選項以Ctrl+Enter回車后再輸入下一個數(shù)據(jù)選項)樣式將“分類勾選去掉”進入類向?qū)砑幼兞?,為IDC_COMBO_CommSele郎加一個value類int型變量m_Index,點擊OK后,再添加一個Control類CComboBo觀變量m_ComboBo點擊OK最后“確定”波特率:常規(guī)ID:IDC_COMBO_BaudRate_Select數(shù)據(jù)輸入列表框項目(N):9600、14400、19200、38400、56000、57600、115200、128000、
18、256000樣式將“分類勾選去掉”進入類向?qū)砑幼兞?,為IDC_COMBO_BaudRate_Select添加一個value類int型變量m_BaudRate點擊OK后,再添加一個Control類CComboBo建變量m_BaudRate_M點擊OKM后“確定”數(shù)據(jù)位:常規(guī)ID:IDC_COMBO_Date_Select數(shù)據(jù)輸入列表框項目(N:8、7、6、5、4樣式將“分類勾選去掉”進入類向?qū)砑幼兞?,為IDC_COMBO_Date_Select添加一個value類int型變量m_Date_Select點擊OKB,再添加一個Control類CComboBo觀變量m_Date_Select_M點
19、擊OKM后“確定”停止位:常規(guī)ID:IDC_COMBO_StopBit數(shù)據(jù)輸入列表框項目(N:1、2樣式將“分類勾選去掉”進入類向?qū)砑幼兞浚瑸镮DC_COMBO_StopBit添加一個value類int型變量m_StopBit點擊O而,再添加一個Control類CComboBo建變量m_StopBit_M點擊OK最后“確定”奇偶校驗位:常規(guī)ID:IDC_COMBO_ParityCheck數(shù)據(jù)輸入列表框項目(NN:N、OE、樣式將“分類勾選去掉”進入類向?qū)砑幼兞?,為IDC_COMBO_ParityCheck添加一個value類int型變量m_ParityCheck點擊OK后,再添加一個Con
20、trol類CComboBo理變量m_ParityCheck_M點擊OKM后“確定”說明:以上數(shù)據(jù)配置添加的Control類CComboBo建變量可能用不到,但value類必須為int型8、為各個列表框添加處理函數(shù):A、在建立類向?qū)е蠱essageMaps,objectIDs中選中IDC_COMBO_CommSelecf在Messages中選中CBN_SELCHANB擊后單擊OK再在Memberfuntions中雙擊剛才生成的函數(shù)進入程序編輯頁面,添加程序代碼如下:代碼段4:voidCSCommTestDlg:OnSelchangeCOMBOCommSelect()/TODO:Addyourco
21、ntrolnotificationhandlercodeherem_Index=(CComboBox*)GetDlgItem(IDC_COMBO_CommSelect)->GetCurSel();/當前選(CComboBox*)GetDlgItem(IDC_COMBO_CommSelect)->SetCurSel(m_Index);/設(shè)置當前選中的行的內(nèi)容為顯示的內(nèi)容if(m_ctrlComm.GetPortOpen()/當要改變時則要先關(guān)閉申口才可以用按鍵進行打開,<所以兄判斷當前申口是否打開:/如果是打開的則先關(guān)閉Xm_ctrlComm.SetPortOpen(FALSE
22、);/關(guān)閉申口兀曰一下面、£刀、5.Il-S-l一J-,一_工,一_工-一添加串口打SetDlgItemText(IDC_BUTTON1,"打開申口");/將打開成關(guān)才按鈕改為"打開申口"顯小五%國您狀態(tài)B、同理為IDC_COMBO_BaudRate_Selec添加處理函數(shù)程序代碼如下:代碼段5:開或關(guān)閉按鈕后將用到此將用到此判斷及以下語句語句voidCSCommTestDlg:OnSelchangeCOMBOBaudRateSelect()/TODO:AddyourcontrolnotificationhandlercodehereUpdat
23、eData(true);m_BaudRate=(CComboBox*)GetDlgItem(IDC_COMBO_BaudRate_Select)->GetCurSel();/當前選中的行/*/根據(jù)當前選中的值進行波特率設(shè)置/*/switch(m_BaudRate)case1:m_ctrlComm.SetSettings("14400,");break;case2:m_ctrlComm.SetSettings("19200,");break;case3:m_ctrlComm.SetSettings("38400,");break;
24、case4:m_ctrlComm.SetSettings("56000,");break;case5:m_ctrlComm.SetSettings("57600,");break;case6:m_ctrlComm.SetSettings("115200,");break;case7:m_ctrlComm.SetSettings("128000,");break;case8:m_ctrlComm.SetSettings("256000,");break;default:m_ctrlComm.Set
25、Settings("9600,");break;/*/UpdateData(false);C、同理為IDC_COMBO_Date_Select添加處理函數(shù)程序代碼如下:代碼段6:voidCSCommTestDlg:OnSelchangeCOMBODateSelect()/TODO:AddyourcontrolnotificationhandlercodehereUpdateData(true);m_Date_Select=(CComboBox*)GetDlgItem(IDC_COMBO_Date_Select)->GetCurSel();/if前選中的行/*/*/sw
26、itch(m_Date_Select)case1:m_ctrlComm.SetSettings(",7,");break;case2:m_ctrlComm.SetSettings(",6,");break;case3:m_ctrlComm.SetSettings(",5,");break;case4:m_ctrlComm.SetSettings(",4,");break;default:m_ctrlComm.SetSettings(",8,");break;/*/UpdateData(false
27、);Dk同理為IDC_COMBO_StopBit添加處理函數(shù)程序代碼如下:代碼段6:voidCSCommTestDlg:OnSelchangeCOMBOStopBit()/TODO:AddyourcontrolnotificationhandlercodehereUpdateData(true);當前選m_StopBit=(CComboBox*)GetDlgItem(IDC_COMBO_StopBit)->GetCurSel();/中而行*/*/switch(m_StopBit)case1:m_ctrlComm.SetSettings(",2");break;defa
28、ult:m_ctrlComm.SetSettings(",1");break;/*/UpdateData(false);E、同理為IDC_COMBO_ParityCheck添加處理函數(shù)程序代碼如下:代碼段7:voidCSCommTestDlg:OnSelchangeCOMBOParityCheck()/TODO:AddyourcontrolnotificationhandlercodehereUpdateData(true);m_ParityCheck=(CComboBox*)GetDlgItem(IDC_COMBO_ParityCheck)->GetCurSel()
29、;/當前選中的行/*/*/switch(m_ParityCheck)case1:m_ctrlComm.SetSettings(",O,");break;case2:m_ctrlComm.SetSettings(",O,”);break;default:m_ctrlComm.SetSettings(",N,”);break;/*/UpdateData(false);此時應(yīng)將代碼段2:提示4中所指的那5個語句前的“/”刪除9、申口添加打開或關(guān)閉按鈕以同樣的方式添加按鈕,并將標題修改為“關(guān)閉申口”字樣,為此按鈕添加處理函數(shù)程序代碼如下:代碼段8:voidCSC
30、ommTestDlg:OnButton1Start()檢查是否改變默認的申口值,沒有改變m_Index的值是0的,否則則不為0if(m_Index<0)/申口的默認值沒有改變switch(m_ctrlComm.GetPortOpen()/點擊打開或關(guān)閉申口按鍵時,根據(jù)當前申口是否打開進行相應(yīng)操作1:case/*關(guān)閉申口前先將自動發(fā)送功能關(guān)閉*/SetDlgItemText(IDC_BUTTON_AutoSend,"自動發(fā)送");/更改按鍵指示KillTimer(l);/*/當前申口是打開的則進行關(guān)申口操作m_ctrlComm.SetPortOpen(FALSE);/關(guān)
31、閉申口SetDlgItemText(IDC_BUTTON1,"打開申口");/更改按鍵指示UpdateData(FALSE);/更新按鍵狀態(tài)break;case0:/當前申口是關(guān)閉的則進行開申口操作m_ctrlComm.SetCommPort(1);/如果要打開申口則應(yīng)先選擇哪個申口m_ctrlComm.SetPortOpen(TRUE);/打開申口SetDlgItemText(IDC_BUTTON1,"關(guān)閉申口");/更改按鍵指示UpdateData(FALSE);break;default:AfxMessageBox("cannotopen
32、orcloseserialport");else/申口的默認值有改變switch(m_ctrlComm.GetPortOpen()/點擊打開或關(guān)閉申口按鍵時,根據(jù)當前申口是否打開進行相應(yīng)操作case0:/當前申口是關(guān)閉的則進行開申口操作m_ctrlComm.SetCommPort(m_Index+1);/如果要打開申口則應(yīng)先選擇哪個申口m_ctrlComm.SetPortOpen(TRUE);/打開申口SetDlgItemText(IDC_BUTTON1,"關(guān)閉申口");/更改按鍵指示UpdateData(FALSE);/更新按鍵狀態(tài)break;case1:/*關(guān)
33、閉申口前先將自動發(fā)送功能關(guān)閉*/SetDlgItemText(IDC_BUTTON_AutoSend,"自動發(fā)送");/更改按鍵指示KillTimer(1);/*/當前申口是打開的則進行關(guān)申口操作m_ctrlComm.SetPortOpen(FALSE);SetDlgItemText(IDC_BUTTON1,"打開申口");UpdateData(FALSE);break;default:AfxMessageBox("cannotopenserialport");if(m_Index<0)(CComboBox*)GetDlgIte
34、m(IDC_COMBO_CommSelect)->SetCurSel(0);/如果沒有另外進行申口選擇則顯小COM1if(m_BaudRate<0)(CComboBox*)GetDlgItem(IDC_COMBO_BaudRate_Select)->SetCurSel(0);/如果沒有另外進行波特率選擇則顯示9600if(m_Date_Select<0)(CComboBox*)GetDlgItem(IDC_COMBO_Date_Select)->SetCurSel(0);/如果沒有另外進行數(shù)據(jù)位選擇則顯示8if(m_StopBit<0)(CComboBox*
35、)GetDlgItem(IDC_COMBO_StopBit)->SetCurSel(0);/如果沒有另外進行停止位選擇則顯示1if(m_ParityCheck<0)(CComboBox*)GetDlgItem(IDC_COMBO_ParityCheck)->SetCurSel(0);/如果沒有另外進行校驗位選擇則顯示沒有校驗位N10、添加自動發(fā)送功能:A、添加一個“編輯框”控件,此控件用于獲取自動發(fā)送的時間間隔的,修改其ID為IDC_EDIT_Timer,為其添加一個value類UINT型變量m_TimerB、添加一個“按鈕”控件,修改其ID為IDC_BUTTON_AutoS
36、end改其標題為“自動發(fā)送”C、添加一個“按鈕”控件,修改其ID為IDC_BUTTON_StopAutoSen>改其標題為“停止自動發(fā)送”»為“自動發(fā)送”按鈕添加BN_CLICKE就理函數(shù),程序代碼如下:代碼段9:voidCSCommTestDlg:OnBUTTONAutoSend()UpdateData(TRUE);if(m_Timer<=0)/判斷是否設(shè)置自動發(fā)送時間間隔AfxMessageBox("請設(shè)置自動發(fā)送時間間隔");elseif(!m_ctrlComm.GetPortOpen()/判斷是否打開申口AfxMessageBox("
37、請打開申口");elseSetDlgItemText(IDC_BUTTON_AutoSend,"自動發(fā)送.");/更改按鍵指示SetTimer(1,m_Timer,NULL);E、為“停止自動發(fā)送”按鈕添加BN_CLICKE就理函數(shù),程序代碼如下:代碼段9:voidCSCommTestDlg:OnBUTTONStopAutoSend()(/TODO:AddyourcontrolnotificationhandlercodehereSetDlgItemText(IDC_BUTTON_AutoSend,"自動發(fā)送");/更改按鍵指示KillTime
38、r(1);F、因為要設(shè)置自發(fā)送,所以要添加一個Windows定時函數(shù),步驟如下:進入類向?qū)?,MessageMaps中的ObjectIDs中選擇CScommTestDl卵選擇Messages中的WM_TIME礎(chǔ)入TIMER®數(shù)后,添加如下程序代碼如下:代碼段10:voidCSCommTestDlg:OnTimer(UINTnIDEvent)(/TODO:Addyourmessagehandlercodehereand/orcalldefaultUpdateData(TRUE);if(m_ctrlHexSend.GetCheck()CByteArrayhexdate;intlen=Str
39、ing2Hex(m_strTXData,hexdate);m_ctrlComm.SetOutput(COleVariant(hexdate);elsem_ctrlComm.SetOutput(COleVariant(m_strTXData);CDialog:OnTimer(nIDEvent);11、十六進制數(shù)據(jù)發(fā)送及接收顯示添加一個“復(fù)選框”控件,修改ID為IDC_CHECK_HexSen爵題為“HEX送”,進入類向?qū)砑觕ontrol類CButton型變量,變量名為m_ctrlHexSend,然后為為SCommTestDlg類添加以下兩個public成員函數(shù),在Classview中右擊CCo
40、mmTestDlg選中AddMemberFunction-然后在函數(shù)類型中輸入int”,在函數(shù)描述中輸入“String2Hex(CStringstr,CByteArray&senddate)”然后確定。編輯函數(shù)體如下:代碼段11:intCSCommTestDlg:String2Hex(CStringstr,CByteArray&senddate)inthexdate,lowhexdate;inthexdatelen=0;intlen=str.GetLength();senddate.SetSize(len/2);for(inti=0;i<len;)charlstr,hst
41、r=stri;if(hstr='')(i+;continue;i+;if(i>=len)break;lstr=stri;hexdate=ConvertHexChar(hstr);lowhexdate=ConvertHexChar(lstr);if(hexdate=16)|(lowhexdate=16)break;elsehexdate=hexdate*16+lowhexdate;i+;senddatehexdatelen=(char)hexdate;hexdatelen+;senddate.SetSize(hexdatelen);returnhexdatelen;再添加別一個CCommTestDl并加兩個成員函數(shù),在函數(shù)類型中輸入“char”,在函數(shù)描述中輸入“ConvertHexChar(charch)”然后確定。編輯函數(shù)體如下:代碼段12:charCSCommTestDlg:ConvertHexChar(charch)(if(ch>='0')&&(ch<='9')(returnch
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 供電產(chǎn)權(quán)分界協(xié)議書范本
- 高端別墅折疊門定制采購合同模板
- 粵式茶餐廳區(qū)域加盟代理經(jīng)營協(xié)議
- 精準匹配車貸需求居間服務(wù)合同樣本
- 住宅小區(qū)拆遷補償及重建工程承包協(xié)議
- 采礦權(quán)抵押貸款合同范本及風(fēng)險評估協(xié)議
- 節(jié)能減排教育實施路徑
- 電梯乘坐安全教育
- 余氯測定方法培訓(xùn)
- 智慧停車解決方案
- 企業(yè)運營與模擬競爭智慧樹知到期末考試答案2024年
- 內(nèi)科胸腔鏡風(fēng)險處置預(yù)案
- SL345-2007水利水電工程注水試驗規(guī)程
- qc技術(shù)主管述職報告
- 護患溝通及糾紛防范
- 人工動靜脈瘺狹窄查房
- PTBD管路維護技術(shù)
- 高壓滅菌器應(yīng)急預(yù)案
- 環(huán)衛(wèi)車輛交通安全知識講座
- 學(xué)生頂崗實習(xí)成績考核表
- NB-T 47013.15-2021 承壓設(shè)備無損檢測 第15部分:相控陣超聲檢測
評論
0/150
提交評論