MFC学习 序列化

时间:2023-03-08 16:11:16
MFC学习 序列化
void CArchiveView::OnWrite()
{
// Archive就是可序列化的类, 要头文件中DECLARE_DYNCREATE(CArchiveDoc)
// 重写 virtual void Serialize(CArchive& ar);
//cpp文件中 IMPLEMENT_DYNCREATE(CArchiveDoc)
//CObArray 有个Serialize函数可以将数组直接序列化
//新建文档和打开文档会调用DeleteContents(), 在堆上分配了内存的要在这个函数中删除指针
CFile file("1.txt", CFile::modeCreate | CFile::modeWrite);
CArchive ar(&file, CArchive::store);
int i = ;
char ch = 'a';
float f = 1.3f;
CString str("test");
ar << i << ch << f << str;
ar.Close();
} void CArchiveView::OnRead()
{
// TODO: 在此添加命令处理程序代码
CFile file("1.txt", CFile::modeRead);
CArchive ar(&file, CArchive::load);
int i;
char ch;
float f;
CString str;
ar >> i >> ch >> f >> str;
ar.Close();
CString strResult;
strResult.Format("%d%c%f%s", i, ch, f, str);
MessageBox(strResult);
}

源码下载