CFile、CArchive及Serialize()的关系。
来源:互联网 发布:139端口是什么服务 编辑:程序博客网 时间:2024/05/21 22:27
CFile是MFC文件类的基类,它直接提供非缓冲的二进制磁盘输入/输出设备,并直接地通过派生类支持文本文件和内存文件。CFile与CArchive类共同使用,支持MFC对象的串行化。
CArchive允许以一个永久二进制(通常为磁盘存储)的形式保存一个对象的复杂网络,它可以在对象被删除时,还能永久保存。可以从永久存储中装载对象,在内存中重新构造它们。使得数据永久保留的过程就叫作“串行化”。 当构造一个CArchive对象时,要把它附加给表示一个打开文件的类CFile(或派生类)的对象上。还要指定归档文件将用于装载还是存储。
一个实现了串行化的类一般会在Serialize()函数中调用CArchive类对象ar来对其相关联的CFile进行读写。以下就是一个简单位的例子:
class example : public CObject
{
DECLARE_SERIAL(CYourClass) //很重要一定要加上
public:
example(){};
virtual void Serialize(CArchive& ar);
void LoadData();
void SaveData();
protected:
CString m_strA;
int m_iB;
};
在实现文件中:
#define FileName _T("MyFile")
IMPLEMENT_SERIAL(example, CObject, 1)
void example::Serialize(CArchive& ar)
{
if(ar.IsLoading())
{
//从文件中读取数据到内存中,比如
ar > > m_strA;
ar > > m_iB;
}
else if(ar.IsStoring())
{
ar < < m_strA;
ar < < m_iB;
}
}
void LoadData()
{
CFile file;
CFileException fe;if(file.Open(FileName, CFile::typeBinary | CFile::modeRead, &fe))
{
CArchive ar(&file, CArchive::load);
Serialize(ar);
}
}
void SaveData()
{
CFile file;
CFileException fe;
//file exist with read & write permissions
if(file.Open(FileName, nFlags/*这个参数根据需要设定*/, &fe))
{
CArchive ar(&file, CArchive::store);
Serialize(ar);
}
}
- CFile、CArchive及Serialize()的关系。
- CArchive、CObject::Serialize、CFile之间的简单关系
- CFile和CArchive的使用
- CArchive 和 CFile
- CArchive运用与CFile
- CFile 与 CStdioFile、carchive 用法的区别(详细解释)
- MFC中有三种文件操作的类 CFile ,CArchive,CDocument
- 串行化;Serialize(CArchive& ar)的使用;ar.IsStoring()用法
- CArchive类和CFile类
- CArchive和CFile用法笔记
- CArchive与QFile的接口关系
- 关于文件的读取和保存(CFile和CArchive)--vc++
- 注意CFile与CArchive再结束时调用close的先后顺序
- 使用MFC的CFile文件类和CArchive串行化类进行二进制文件读写操作
- CArchive类与CFile产生关联
- MFC学习笔记-CFile、CFileFind、CArchive
- CArchive和Serialize即通过串行化文档的写入与读取
- OnDraw(CDC* pDC) Serialize(CArchive& ar)
- setTimeOut(),setInterval的使用和区别
- Oracle 控制文件
- Kinect for Windows SDK 开发(一)
- CDHtmlDialog与js交互
- 3.当形参,返回值类型是JavaBean式的复合类,List集合,数组等时:服务端业务逻辑层接口
- CFile、CArchive及Serialize()的关系。
- STL容器之list
- (三大框架SSH)面试题锦集
- 4.当形参,返回值类型是JavaBean式的复合类,List集合,数组等时:服务端业务逻辑层实现类
- vs2010控制台程序下绘制图形
- shellcode API的自动定位
- Ⅱ型糖尿病新致病基因浮出水面
- 系统自带的 自动关机 参数
- Hibernate配置文件