CArchive详解 及dome 源码

源码下载:http://download.csdn.net/detail/qq_17242957/9265927


CArchive没有基类。

CArchive允许以一个永久二进制(通常为磁盘存储)的形式保存一个对象的复杂网络。可以在对象被删除时,还能永久保存。可以从永久存储中装载对象,在内存中重新构造它们,使得数据永久保留的过程就叫做“串行化”。
可以把一个archive对象看做一种二进制流。像输入/输出流一样,archive与一个文件相关联并且允许缓冲区从硬盘读出或读入数据。输入/输出流一样处理一系列的ASCII字符串,archive以高效无冗余的格式处理二进制数据。
必须在创建一个CArchive对象之前,创建一个CFile对象。必须确定archive的加载/存储与file的打开模式相容。每个file只能对应于一个active archive。
当你创建一个CArchive对象时,你就将它分配给一个CFile类(或者派生自CFile的类)的对象,此对象代表一个打开的文件。你同时确定可此archive将被用于加载还是存储。CArchive不仅可以处理简单的类型,也可以处理从CObject派生的类所产生的对象,此对象被设计用于Serialization。
CArchive还支持使用MFC Windows套接字类CSocket和CSocketFile编程。
 
CArchive类的成员:
数据成员:
    m_pDocument指向被串行化的CDocument对象
构造函数:
    CArchive:创建一个CArchive对象
    Abort:在不异常的情况下,关闭archive
    Close:冲掉未写入数据并且释放与CFile的连接
 
基础输入/输出:
Flush:从archive文件缓冲区中冲掉未写入数据
运算符>>:从archive中加载对象或者简单类型数据
运算符<<:向archive中存储对象或者简单类型数据
Read:读入原始类型
Write:写入原始类型
WriteString:写一行文本
ReadString:读一行文本
 
状态:
GetFile:获得此archive的CFile对象指针
GetObjectSchema:由Serialize函数调用,来确定被串行化的对象的版本
IsBufferEmpty:确定在一个Windows Socket接收过程中缓冲区是否被清空
IsLoading:确定archive文件是否被装载
IsStoring:确定archive文件是否被存储
SetObjectSchema:设置在archive文件中存储的对象概要
 
对象输入/输出 :
MapObject:在没有对文件串行化的映射中放置对象,但是此映射对参考的子对象有效
ReadClass:读入一个原先存储在WriteClass中的类的参考
ReadObject:调用对象用于装载的Serialize函数
SerializeClass:根据CArchive方向,读入或写入与CArchive对象有关联的类
SetLoadParams:设置加载数组增长的大小,须在对象加载之前调用,或者在MapObject
               和ReadObject之前调用
SetStoreParams:设置哈希表的大小和映射的块的大小,映射块在串行化的过程中识别对象
WriteClass:把CRuntimeClass的参考写入CArchive
WriteObect:调用一个对象的Serialize函数,此函数用于装载
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值