C++ builder XE 傳送ASCII差異 |
尚未結案
|
layws
一般會員 發表:1 回覆:1 積分:0 註冊:2005-10-02 發送簡訊給我 |
各位先進大家好,由於目前開始嘗試平台轉換使用BuilderXE 新版本 舊有程式RS232傳輸搭配TMS Async32 物件作為RS232傳輸物件平台 但是使用Builder2010 編譯時,可以傳送超過ASCII 127以後的資料,反之Builder傳送都變成0x00 確定應該不是TMS Async32物件問題,相同情況使用Indy 網路傳輸問題相同 自己努力爬文,始終找不到問題,請先進幫忙解惑,謝謝
[code cpp] void __fastcall TMainForm::Button2Click(TObject *Sender) { int Data = 0x92; AnsiString SendData=""; SendData = (char)Data; VaComm1->WriteText(SendData); } [/code] 正常應該回覆 0x92 但是卻回覆0x00,在使用Builder2010 前都是正常的 |
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
你好,
沒用過tms的,但照你的問題來看有個問題可疑。 1/ WriteText 這個方法,理論上若for 2009版以上的話,應該是實作成送w_char陣列 (即uincode字串),但卻想給他一個byte的東西。 2/但我建議你試著改用別的方法,不要用WriteText,而用類似WriteBuf (我猜應該這類的吧?) 這樣就不會有unicode string 的問題 ===================引 用 layws 文 章=================== 各位先進大家好,由於目前開始嘗試平台轉換使用BuilderXE 新版本 舊有程式RS232傳輸搭配TMS Async32 物件作為RS232傳輸物件平台 但是使用Builder2010 編譯時,可以傳送超過ASCII 127以後的資料,反之Builder傳送都變成0x00 確定應該不是TMS Async32物件問題,相同情況使用Indy 網路傳輸問題相同 自己努力爬文,始終找不到問題,請先進幫忙解惑,謝謝
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
layws
一般會員 發表:1 回覆:1 積分:0 註冊:2005-10-02 發送簡訊給我 |
您好: 經分析後TMS 搭配RS232控件是無辜的,因為檢視程式碼都是採用AnsiString 因此程式內有UnicodeString要轉換ASCII 問題已經處理完畢
倒是同樣程式碼透過網路Indy 傳送, 就無法成功送出>127 ASCII 資料, 收到Data都被截成0x00 但實際了解使用UnicodeString 送出去ASCII >127 就無法成功! 這是遇到的狀況 目前把ASCII 塞入整串數據外送, 個人做法透過以下方式來呈現, 但是>127 ASCII 尚無法成功 ex: 要送出 [0x05]Test[0x04] 有包含可視與不可視ASCII AnsiString 一直把數值累加後再送到對方卻無此問題, 後期2010/2011 搭配Indy 無法成功送出>127 ASCII ===================引 用 aftcast 文 章=================== 你好, 沒用過tms的,但照你的問題來看有個問題可疑。 1/ WriteText,而用類似WriteBuf (我猜應該這類的吧?) 這樣就不會有unicode string 的問題 ===================引 用 layws 文 章=================== 各位先進大家好,由於目前開始嘗試平台轉換使用BuilderXE 新版本 舊有程式RS232傳輸搭配TMS Async32 物件作為RS232傳輸物件平台 但是使用Builder2010 編譯時,可以傳送超過ASCII 127以後的資料,反之Builder傳送都變成0x00 確定應該不是TMS Async32物件問題,相同情況使用Indy 網路傳輸問題相同 自己努力爬文,始終找不到問題,請先進幫忙解惑,謝謝 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |