找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 3514|回复: 3

请教ace序列化的问题

[复制链接]
发表于 2009-7-7 09:16:59 | 显示全部楼层 |阅读模式
我使用了ACE_Message_Block, InputCDR, OutputCDR进行对象的序列化和反序列化,有一个地方比较麻烦,就是每次序列化一个对象,都需要手工的设置内存的读写指针,大家也是这么做的吗?

ACE_Message_Block msg;
OutputCDR os(msg);

os << str1;
msg.write(str1.length();//这个太麻烦,大家有什么好的解决方案吗?
os << str2;
 楼主| 发表于 2009-7-7 13:04:27 | 显示全部楼层
顶,没有人碰到这样的问题吗
发表于 2009-7-7 13:28:59 | 显示全部楼层
都是这样的吧。不然字符串怎么知道长度。要么就用\0结束符默认了。
发表于 2009-7-8 14:20:46 | 显示全部楼层
str1,str2是ACE_CString类型么?
msg.write(str1.length()是msg.wr_ptr(str1.length()么?

为什么要移动写指针呢?没有必要吧。ACE定义好的operator<<()都已经做过了这个移动。
如果你是自己重载的operator<<(),只要你的类成员的operator<<()都是用的ACE定义好的operator<<(),也一样不用动。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-23 04:03 , Processed in 0.016395 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表