在面向对象的程序设计中,一般都是用二进制文件来保存文档资料。在VC++中控制和使用文件流的方法很多,MFC程序设计中常用的有两种方法:用CFile对象存储和读取文件;利用串行化存取文件。其中用CFile对象直接存储文档,存在着以下两个问题:一是过程繁琐,例如绘图系统中常存在大量的数据对象(直线对象、矩形对象等);另一个问题是功能受限,VC++为了程序集成的需要,设汁成了复合文档,可以把各种外来对象(如OLE对象的嵌入和链接)的内容存储到外部文件中并从外部文件中读取内容更新构造对象,而程序的设计者并不知道这些对象中需要存储数据的内容和格式,在这种情况下,直接利用CFile类就无能为力了。
既然已决定采用串行化的方法,就要明确串行化的概念:CArchive类用于以持久的二进制形式(通常是磁盘存储)来存储一个复杂的对象网络,用户可以把对象的内容存储到存储区中,也可以从存储区中读取内容重新构造对象。这个过程成为“串行化”,下面介绍串行化的几个基础知识点:
1 CArchive。构造函数:CArchive( CFile* pFile, UINT nMode, int nBufSize = 4096, void* lpBuf = NULL <