太平人寿是序列℃的库 数据。的数据存储在其 自然二进制形式。该API是小 并试图留“闪开”。 相对于使用XML,第三方物流快 并且更容易在C程序中使用。 TPL 可序列化许多C的数据类型, 包括结构。 P> BLOCKQUOTE>
我知道你问的图书馆。如果你不能找到一个(!::惊奇::,你会认为这是一个解决问题的),这里是一个解决方案大纲: P>
您应该能够编写一个代码生成器[1]在没有(运行时)序列树/图预处理相当简单。 P>
您需要解析节点结构( 处理?),并在正前方的方式写入包含数据值,但治疗指针,应谨慎对待。 P>
-
有关指向其他对象(即),你的知道 em>的可以单独使用,引用,您可以直接序列化的目标数据。 p> li>
-
有关可能被乘refernced对象和你的树的其他节点上,你必须代表指针结构。每个对象被分配一个序列号,这正是写出就地指针。保持当前的内存位置和序列号码之间的转换结构。在遇到一个指针,看它是否已被分配一个号码,如果没有,给它一个,队列对象向上进行序列化。 p> li> ul>
回读也需要一个节点 - #/内存位置转换步骤,而且可能更容易做两遍:再生与在指针插槽节点号节点(坏的指针,被警告),以找出每个节点得到放,然后步行结构再固定指针。 P>
我不知道TPL任何东西,但你也许能够背驮式就可以了。 P>
P>
P>磁盘上的/网络格式也许应该框架与某些类型的信息。你需要一个名称重整方案。 P>
P>
P>[1] 根使用此机制,提供非常灵活的序列化支持在C ++中。 P>
P>
P>晚此外: STRONG>它发生,我认为这并不总是如我前文所提到一样容易。考虑下面的(人为和设计拙劣)声明: P>
和假设我们initalize出 项目使 在点 P>
当我们去到的数据,我们做什么与序列化? P>
您需要照顾在设计你的数据结构和/或带来一些具体案件的智能序列化进程。 STRONG> P>