CArchive没有基类
CArchive允许以一个永久
二进制(通常为
磁盘存储)的形式保存一个对象的
复杂网络,它可以在对象被删除时,还能永久保存。可以从永久存储中装载对象,在内存中重新构造它们。使得数据永久保留的过程就叫作“
串行化”。
可以把一个归档对象看作一种二进制流。像输入/输出流一样,归档与文件有关并允许写
缓冲区以及从硬盘读出或读入数据。输入/输出流处理一系列
ASCII
字符,但是归档文件以一种有效率、精练的格式处理二进制对象。
必须在创建一个CArchive对象之前,创建一个
CFile对象。另外,必须确信归档文件的装入/存储与文件的打开模式是兼容的。每一个文件只限于一个活动归档文件。
当构造一个CArchive对象时,要把它附加给表示一个打开文件的类CFile(或
派生类)的对象上。还要指定归档文件将用于装载还是存储。CArchive对象不仅可以处理首要类型,而且还能处理为
串行化而设计的
CObject_派生类的对象。一个串行化类通常有一个
Serialize成员函数并且使用
DECLARE_SERIAL和
IMPLEMENT_SERIAL宏。这些在CObject类中有所描述。
CArchive还支持使用MFC Windows
套接字类
CSocket和
CSocketFile编程。IsBufferEmpty成员函数也支持这种使用。如果要了解有关CArchive的更多信息,请参阅联机文档“Visual C++ 程序员指南”中的“
串行化(永久对象)” 和“Windows套接字:在归档文件中使用套接字”
include<afx.h>
请参阅 CFile,
CObject,CSocket,CSocketFile