使用串行化还是比较通用的
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();