CFile可以读写文件,为什么还要用CArchive?请点通

gaoqizongpan 2015-03-04 11:56:19
都说CArchive可以序列化,但是什么的序列化,CFile平时读写都没有啥问题,不用序列化不行吗?
CArchive的必要性是什么?最好用生活中的一个例子来解释下,感谢!!!!
...全文
224 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
forget0915 2015-03-09
  • 打赏
  • 举报
回复
序列化可以读写整个类的结构,包括这个类的所有成员变量和成员函数,虚函数表,静态成员 而CFile确只能读写类里面的数据,还得你手动实现
super_admi 2015-03-09
  • 打赏
  • 举报
回复
序列化貌似定义的是规则,其过程是自动完成的; 而手动实现定义的是过程。
引用 14 楼 jiht594 的回复:
[quote=引用 13 楼 forget0915 的回复:] 序列化可以读写整个类的结构,包括这个类的所有成员变量和成员函数,虚函数表,静态成员 而CFile确只能读写类里面的数据,还得你手动实现
成员里除了数据, 别的有用吗 CFile读取数据, 赋值到对象中, 这样和序列化有什么区别吗?序列化一样需要手动实现吧[/quote]
jiht594 2015-03-09
  • 打赏
  • 举报
回复
引用 13 楼 forget0915 的回复:
序列化可以读写整个类的结构,包括这个类的所有成员变量和成员函数,虚函数表,静态成员 而CFile确只能读写类里面的数据,还得你手动实现
成员里除了数据, 别的有用吗 CFile读取数据, 赋值到对象中, 这样和序列化有什么区别吗?序列化一样需要手动实现吧
u010231493 2015-03-07
  • 打赏
  • 举报
回复
CArchive是微软自己封装的序列号类。他的目的就是方便。 比如你使用微软封装的套接字通信时,他用的就是CArchive序列号传递数据。 或者你com和复制板 序列化的概念在网络传输上更明显。。楼上都说了。
Isnis-fallen 2015-03-07
  • 打赏
  • 举报
回复
CArchive是为MFC控件提供 数据的
jiht594 2015-03-06
  • 打赏
  • 举报
回复
个人感觉 CFile写什么数据都可以, 包括可以写对象(自己需要处理) 然后CArchive把写对象这个过程标准化了
vcf_reader 2015-03-06
  • 打赏
  • 举报
回复
楼主,长裤和短裤都是裤子,好好想想
greex 2015-03-06
  • 打赏
  • 举报
回复
学习了。
jiht594 2015-03-04
  • 打赏
  • 举报
回复
而序列化是直接存对象, 读对象. 你要存储的数据在一个struct中, struct有1000个成员. 如果不嫌弃个一个一个存麻烦, 就可以不用序列化 其实你自己写了读写一个struct的函数, 也是序列化. 不够有系统提供的为什么不用呢
赵4老师 2015-03-04
  • 打赏
  • 举报
回复
MSDN98_1.ISO http://pan.baidu.com/s/1dDF41ix, MSDN98_2.ISO http://pan.baidu.com/s/1bnGo0Vl 先下载安装MSDN98,然后参考: MSDN98\SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1~7\*.*
我是调参侠 2015-03-04
  • 打赏
  • 举报
回复
感觉要把序列化和写文件分开,把内存中的对象数据永久保存起来,写到硬盘上是一种保存数据的实现方法,最终看起来的形式是跟CFile一样,写到了文件里。但CArchive有解析数据的过程,写文件是CArchive的一种实现方式。
jiht594 2015-03-04
  • 打赏
  • 举报
回复
引用 4 楼 gaoqizongpan 的回复:
你是说 strut 里面有指针成员吗?
sorry 我说的好像不对 . 我也在看.
gaoqizongpan 2015-03-04
  • 打赏
  • 举报
回复
你是说 strut 里面有指针成员吗?
jiht594 2015-03-04
  • 打赏
  • 举报
回复
引用 2 楼 gaoqizongpan 的回复:
AA aa(22,"abc"); file.Write(&aa,sizeof(AA)); ======================== AA aa; memset(&aa,0,sizeof(AA)); file.Read(&aa,sizeof(AA)); 我用CFile也可以读写struct,你说的1000个成员是什么意思?还是没明白
指针你怎么处理?
gaoqizongpan 2015-03-04
  • 打赏
  • 举报
回复
AA aa(22,"abc"); file.Write(&aa,sizeof(AA)); ======================== AA aa; memset(&aa,0,sizeof(AA)); file.Read(&aa,sizeof(AA)); 我用CFile也可以读写struct,你说的1000个成员是什么意思?还是没明白

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧