关于ptlib中的PString::IsEmpty()使用的问题

本文分享了一次IP电话服务程序开发过程中的调试经历。作者使用VC6进行开发,在遇到拨打电话功能出现错误后,发现问题是由于structmemberalignment设置不当导致。通过调整设置并使用#pragmapack解决了问题。
    今天做了一个IP电话服务程序,通过接收消息来执行拨打电话的功能。消息中用了word类型,所以我将VC6
的struct member alignment设置为1 byte。结果本来运行正常的程序一拨号就报错,郁闷了半天才发现是PString::IsEmpty()的问题,我估计PString::IsEmpty()是按struct member alignment为8来进行运算的。改回8 byte后一切正常了。
   但为了方便取消息中的word类型变量,还得需要将消息的结构体按1 byte来运行,所以在结构体的前面加上#pragma pack(push,1) ,在结构体后面加上#pragma pack(pop)即可。
    学习啊,学习,碰壁阿碰壁,....
 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值