注意TDes8 -> Expand方法

今天在寫程序時,用到了動態緩衝CBufFlat,在讀取數據後想當然的使用了TDes8的Expand()方法將TDes8改爲TDes16,當然程序報錯了,模擬器直接退出,很顯然程序發生嚴重錯誤。通過實踐後發現Expand並非通過擴展內存區域來實現8bit轉16bit,而是使用現有的描述符內存區域大小,只是進行了內存合併,兩個8成了一個16,如果8位描述符中信息已經超出了最大長度一半,則會轉換失敗。Expand方法在使用時還可能因爲內存地址非偶數地址而發生轉換失敗。

隨筆記錄,以防再錯。也請大家指點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章