注意TDes8 -> Expand方法

今天在写程序时,用到了动态缓冲CBufFlat,在读取数据后想当然的使用了TDes8的Expand()方法将TDes8改为TDes16,当然程序报错了,模拟器直接退出,很显然程序发生严重错误。通过实践后发现Expand并非通过扩展内存区域来实现8bit转16bit,而是使用现有的描述符内存区域大小,只是进行了内存合并,两个8成了一个16,如果8位描述符中信息已经超出了最大长度一半,则会转换失败。Expand方法在使用时还可能因为内存地址非偶数地址而发生转换失败。

随笔记录,以防再错。也请大家指点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值