在MFC的序列化

本文说明 Microsoft 基础类库提供的序列化机制 (MFC) 中允许对象之间始终保留运行您的程序。

序列化是写入或读取处理对象来回一个永久性存储媒体 (如磁盘文件。 序列化到有关维护结构化数据状态的情况是理想 (例如 C++ 类或结构) 在过程之前或之后,执行。 使用 MFC 提供的序列化对象允许会发生在标准和一致的方式,欣慰用户从需要手动执行文件操作。

MFC 提供内置为类 CObject的序列化支持。 因此,从 CObject 派生的任何类可以利用 entity_CODECObject 的序列化协议。

序列化本意是对象应能够编写其当前状态,通常由其成员变量的值,对永久存储。 之后,对象可以读取或反序列化重新创建,从存储的对象的状态。 序列化处理对象指针和循环所有详细信息对使用的对象,在序列化对象时。 要点是对象可以读取和编写自己的状态负责。 因此,为了使类可以序列化,则它必须实现基本序列化操作。 如文章的序列化组所示,将此功能添加到类非常容易。

MFC 使用 CArchive 类的对象,该对象将序列化和存储媒介之间的中间方。 此对象始终与 CFile 对象,它包含序列化的必需信息,包括文件名,并请求的操作是否为读或写。 执行序列化操作的对象可以使用 CArchive 对象不考虑谓词的存储媒介。

CArchive 对象使用重载中插入 (<<) 和提取**>>**() 运算符执行编写和读取操作。 有关更多信息,请参见位于 " 序列化的 存储和加载的 CObjects 通过存档 :序列化对象。

备注

不要将 CArchive 类混淆泛型 iostream 类,仅用于格式化文本。CArchive 类是二进制格式序列化的对象。

如果需要,您可以创建自己的持久性数据存储自己的结构的跳过 MFC 序列化。 您将需要重写在用户的命令的启动序列化的类成员函数。 在参见 ID_FILE_OPENID_FILE_SAVEID_FILE_SAVE_AS 标准命令的 技术说明 22 的讨论。

下列文章包含对于序列化所需的两个主要任务:

文章 序列化:序列化与数据库输入/输出 描述序列化时是在数据库应用程序的适当输入/输出技术。

请参见

参考

CArchive 类

CObject 类

CDocument 类

CFile 类

概念

泛型MFC主题

其他资源

MFC概念