aaronjiang 发表于 2009-7-7 09:16:59

请教ace序列化的问题

我使用了ACE_Message_Block, InputCDR, OutputCDR进行对象的序列化和反序列化,有一个地方比较麻烦,就是每次序列化一个对象,都需要手工的设置内存的读写指针,大家也是这么做的吗?

ACE_Message_Block msg;
OutputCDR os(msg);

os << str1;
msg.write(str1.length();//这个太麻烦,大家有什么好的解决方案吗?
os << str2;

aaronjiang 发表于 2009-7-7 13:04:27

顶,没有人碰到这样的问题吗

winston 发表于 2009-7-7 13:28:59

都是这样的吧。不然字符串怎么知道长度。要么就用\0结束符默认了。

wishel 发表于 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<<(),也一样不用动。
页: [1]
查看完整版本: 请教ace序列化的问题