对象序列化

看—>http://msdn.microsoft.com/zh-cn/library/cc468163%28v=VS.71%29.aspx

 

 

 

 

本文解释 Microsoft 基础类库 (MFC) 中提供的序列化机制,该机制使对象可以在程序运行之间保持。

序列化是指将对象写入永久性存储媒体(如磁盘文件)或从其中读取对象的进程。 MFC 对 CObject 类中的序列化提供内置支持。因此,所有从 CObject 派生的类都可利用 CObject 的序列化协议。

序列化的基本思想是对象应能将其当前状态(通常由该对象的成员变量指示)写入永久性存储中。以后,通过从存储中读取对象状 态或反序列化对象状态,可以重新创建该对象。序列化处理序列化对象时使用的对象指针和对象循环引用的所有详细资料。关键之处在于对象本身负责读写其自身状 态。因此,对于可序列化的类,必须实现基本的序列化操作。正如“序列化”文章组中所显示的那样,很容易将该功能添加到类中。

MFC 将 CArchive 类的对象用作将被序列化的对象和存储媒体之间的中介物。该对象始终与 CFile 对象相关联,它从 CFile 对象获得序列化所需的信息,包括文件名和请求的操作是读取还是写入。执行序列化操作的对象可在不考虑存储媒体本质的情况下使用 CArchive 对象。

CArchive 对象使用重载输出运算符 (<< ) 和输入运算符 (>> ) 来执行读写操作。有关更多信息,请参见“序列化:序列化对象”文章中的通 过存档存储和加载 CObjects

注意    请 不要将 CArchive 类与通用 iostream 类混淆,iostream 类只用于格式化的文本。而 CArchive 类则用于二进制格式的序列化对象。

如果愿意,可以不使用 MFC 序列化而为永久性数据存储创建自己的机制。您将需要在用户的命令处重写启动序列化的类成员函数。请参见 ID_FILE_OPENID_FILE_SAVEID_FILE_SAVE_AS 标准命令的技 术说明 22 中的讨论。

下列文章介绍了序列化所需的两个主要任务:

序 列化:序列化与数据库输入/输出的对比 一文描述了序列化在数据库应用程序中何时是适当的输入/输出技术。

请参见

MFC | 一 般的 MFC 主题 |

| | |
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章