什么是 CArchive 对象

对象 CArchive 提供一种类型安全的缓冲机制,用于向对象或从 CFile 对象写入或读取可序列化对象。 通常对象 CFile 表示磁盘文件;但是,它也可以是内存文件(CSharedFile 对象),也许表示剪贴板。

给定 CArchive 对象存储(写入、序列化)数据或加载(读取、反序列化)数据,但从不同时加载。 对象的生存期仅限于经过一次写入文件或从文件中读取对象的过程。 因此,需要连续创建两个 CArchive 对象,首先将数据序列化到文件,然后再从文件中反序列化回来。

当存档将对象存储在文件中时,存档会将 CRuntimeClass 名称附加到对象。 然后,当另一个存档将对象从文件加载到内存中时,CObject 派生的对象会根据对象的CRuntimeClass 被动态重构。 给定对象可以多次被引用,因为它被存储存档写入文件。 但是,加载存档将仅重新构造一次对象。 CRuntimeClass 中介绍了存档如何将信息附加到对象和重新构造对象,同时考虑可能的多个引用。

当数据序列化为存档时,存档将累积数据,直到其缓冲区已满。 然后,存档将其缓冲区写入由CFile对象指向的CArchive对象。 同样,从存档读取数据时,它会将数据从文件读取到其缓冲区,然后从缓冲区读取到反序列化的对象。 此缓冲可减少物理读取硬盘的次数,从而提高应用程序的性能。

另请参阅

序列化:序列化对象