VC++ chap13 文档与串行化
Lesson 13 文档与串行化
13.1使用CArchive类对文件进行读写操作
//让对象数据持久性的过程称之为串行化,或者序列化
void CGraphicView::OnFileWrite()
{
// TODO: Add your command handler code here
CFile file("1.txt",CFile::modeCreate|CFile::modeWrite); //build CFile object
CArchive ar(&file,CArchive::store); //build archive object
int i=4;
char ch='a';
float f=1.3f;
CString str("aliceandrabbit");
ar<<i<<ch<<f<<str; //save dates;
}
void CGraphicView::OnFileRead()
{
// TODO: Add your command handler code here
CFile file("1.txt",CFile::modeRead);
CArchive ar(&file,CArchive::load);
int i;
char ch;
float f;
CString str;
CString strResult;
ar>>i>>ch>>f>>str;
strResult.Format("%d,%c,%f,%s",i,ch,f,str);
MessageBox(strResult);
}
13.2MFC框架程序提供的文件新建功能
13.3 文档串行化
13.4可串行化的类
先要使类具有串行化
1,拷贝lesson11的CGraph对象,将其修改为从CObject派生。
2,重载Serialzie函数(在CGraph类中添加)
3,在声明CGraph类时,使用DECLARE_SERIAL宏,即在graph.h头文件中,在类定义的内部添加
DECLARE_SERIAL(CGraph)
4,该类需要不带参数的构造函数
5,为CGraph类在实现文件中使用IMPLEMENT_SERIAL宏,即在CGraph类的构造函数的定义前添加:IMPLEMENT_SERIAL(CGraph,CObject,1)
至此,CGraph类就支持串行化了。
然后为此类添加一个图形绘制函数:Draw,从而将图形数据和图形绘制封装在一个类中
最新文章
- 深入剖析 redis 事件驱动
- Callable、Future和FutureTask
- TP复习15
- [DLX]HDOJ4069 Squiggly Sudoku
- Android SurfaceView实战 打造抽奖转盘
- HPU--1091 N!的位数
- CSS根据子元素个数不同定义样式
- Python strip()方法
- Vsftpd服务重启、暂停命令
- selenium启动Firefox失败
- SSLv3存在严重设计缺陷漏洞(CVE-2014-3566)
- 微信小程序-实现分享(带参数)
- (原创)一个和c#中Lazy<;T>;类似的c++ Lazy<;T>;类的实现
- linux下删除大量小文件
- mysql jdbc性能优化之mybatis/callablestatement调用存储过程mysql jdbc产生不必要的元数据查询(已解决,cpu负载减少20%)
- MySQL 二进制文件恢复
- 修复吾爱OD数据窗口双击不出现偏移问题
- Linux服务器运行环境搭建(二)——Redis数据库安装
- LINUX 修改本机yum源为163镜像源
- POJ:2456 Aggressive cows(z最大化最小值)