对象的持久性是从磁盘上读写对象的过程。MFC通过成为序列化(serialization)的机制实现对象的持久性。使用序列化,保存数据的功能可以简易而迅速的合并到MFC的应用程序中,无须使用更传统的DBMS,串行化是典型的在基于文档(SDI OR MDI)的应用程序中使用。
序列化的基本思想是一个类对象,能够将它记录在成员变量中的当前状态存储,也可以通过串行的读取存储的数据重新创建对象。对于一个想实现串行化操作的CObject派生类对象而言,必须实现Serialize成员函数。
Serialize函数的工作原理是:在MFC中,磁盘文件时通过CFile类的对象来表示的,它通过Win32函数CreateFile获得的二进制句柄进行了封装,在Serialize函数中,应用程序一般不直接利用磁盘I/O,这样就避免了直接使用CFile对象,在Serialize函数和CFile对象之间,还有一个归档对象CArchive。
1.为了使得一个类可串行化,必须在类声明中使用DECLARE_SERIAL宏,并且在类的实现文件中使用IMPLEMENT_SERIAL宏;
2.实现Serialize虚函数;