使用串行化

来源:互联网 发布:苹果6数据打不开 编辑:程序博客网 时间:2024/06/14 16:17

使用串行化还是比较通用的

1 在.h的类里面定义DECLARE_SERIAL(类名);
2在.CPP里全局定义IMPLEMENT_SERIAL(类名,基类名,1) 最后一个参数是保存格式的版本号不为-1就可以。
3在读和写文件的时候用如下代码

C/C++ code
CFileDialog inDlg(1, NULL, ".bul", NULL, _T("文件 (*.bul)|*.bul|所有文件 (*.*)|*.*||"), NULL) ;inDlg.m_ofn.lpstrTitle = _T("打开文件"); //给打开对话框命名if(inDlg.DoModal() == IDOK) { in.Open( inDlg.GetPathName(), CFile::modeRead ); CArchive ar( &in,CArchive::load );ar>>m_nBubbleCount;//... ar.Close();} in.Close();--------------------------CFile out;CFileDialog outDlg(FALSE, NULL, NULL, NULL, _T("文件 (*.bul)|*.bul|所有文件 (*.*)|*.*||"), NULL);outDlg.m_ofn.lpstrTitle = _T("保存文件");outDlg.m_ofn.lpstrDefExt = ".bul";if(outDlg.DoModal() == IDOK) { out.Open( outDlg.GetPathName(), CFile::modeWrite|CFile::modeCreate ); CArchive ar( &out,CArchive::store ); ar<<m_nBubbleCount;//.... ar.Close(); }out.Close();