看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) BCB6 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 手邊只有VB6與BCB6 最近發現Serial port 在軟體存txt或另開一個軟體時,會出現掉資料情況, 不做這些事就正常 上網查, 發現有人在討論多執行緒, 針對serial port在執行緒範例不多 想問一下,我的問題是因為單執行緒造成的嗎? 如果是, bcb6解決這問題容易嗎? 是否有serial port範例呢? 因為vb6一些文章都說很困難 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.251.225.85 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1472889643.A.7F5.html
rephansu: 從CreateFile( "COMx"...來看, 收訊息其實都是OS在負責 09/03 22:41
rephansu: 不太會因為沒去處理導致掉訊息, 除非緩衝區滿了 09/03 22:42
rephansu: DCB , CreateFile , SetCommState , SetupComm ... 09/03 22:48
rephansu: 使用 Win32api 處理comport關鍵字大致上就這些 09/03 22:49
rephansu: 想偷懶可試試 C#的SerialPort,C#已內建多執行序的讀取 09/03 22:52
rephansu: 用CreateThread呼叫處理com的function就可解決問題 09/03 23:07
rephansu: 上面那行是說BCB6只要用CreateThread就可以建立執行緒 09/03 23:08
rephansu: 在該執行緒下呼叫讀Com Port就不用擔心緩衝區滿 09/03 23:11