【发布时间】:2013-01-10 02:48:43
【问题描述】:
我有一个基于 mfc 的 Windows 应用程序,它使用 CArchive (MFC) 序列化类保存其文档
我想将这些文件加载到我的新 Android 应用程序中,但需要一些 Java 代码来理解序列化数据文件格式。一旦我把它拆开,我就可以处理数据了,但我真的不想自己剖析 CArchive 创建的文件。任何人都可以帮忙,也许是某个地方的图书馆?
【问题讨论】:
-
反序列化
CArchive严重依赖 MFC 基础架构。它使用工厂方法来创建在IMPLEMENT_SERIAL宏中定义的对象。CArchive流本身由类和长度信息以及后面的实际内容组成。该类型的第一个对象的类型名称以纯文本形式序列化。 MFC 构造先前序列化对象的映射并将索引而不是类型名称写入后续对象的流。您可以查找详细信息,因为您有可用的 MFC 源。这是可行的,但复制它肯定会很麻烦。 -
对上面评论的更正:MFC类工厂是通过
IMPLEMENT_DYNCREATE实现的-IMPLEMENT_SERIAL提供序列化支持。后者依赖前者动态构造从CArchive流中读取的对象。
标签: java serialization mfc carchive