MFC序列化与反序列化
#pragma once
#include "afx.h"
#include <vector>
using std::vector; class HzyData :
public CObject
{
public:
HzyData();
~HzyData(); public:
DECLARE_SERIAL(HzyData) virtual void Serialize(CArchive& ar); void initail();
void testData(); private:
int dInt;
double dDouble;
CString dStr;
vector<double> dVec;
};
HzyData.h
#include "stdafx.h"
#include "HzyData.h" IMPLEMENT_SERIAL(HzyData, CObject, VERSIONABLE_SCHEMA | ) HzyData::HzyData()
{
initail();
} HzyData::~HzyData()
{
} void HzyData::initail()
{
this->dInt = ;
this->dDouble = ;
this->dStr = _T("");
this->dVec.clear();
} void HzyData::testData()
{
this->dInt = ;
this->dDouble = 7.2;
this->dStr = _T("hello,hzy");
this->dVec.clear();
for (int i = ; i < ; i++)
{
this->dVec.push_back(i * 2.3);
}
} void HzyData::Serialize(CArchive& ar)
{
CObject::Serialize(ar);
//关键代码
if (ar.IsStoring()) {
//序列化
ar << this->dInt << this->dDouble << this->dStr;
int size = (int)this->dVec.size();
ar << size;
for (int i = ; i < size; i++)
{
ar << this->dVec[i];
}
}
else {
//反序列化
ar >> this->dInt >> this->dDouble >> this->dStr;
int size = ;
ar >> size;
this->dVec.clear();
for (int i = ; i < size; i++)
{
double temp = ;
ar >> temp;
dVec.push_back(temp);
}
}
}
HzyData.cpp
HzyData data;
data.testData(); CFile myFile(_T("d:/hzydata.ser"), CFile::modeCreate | File::modeReadWrite);
CArchive archive(&myFile, CArchive::store);
data.Serialize(archive);
archive.Close();
myFile.Close();
序列化
CFile myFile(_T("d:/hzydata.ser"), CFile::modeRead);
CArchive archive(&myFile, CArchive::load);
HzyData data;
data.Serialize(archive);
archive.Close();
myFile.Close();
反序列化
MFC序列化与反序列化的更多相关文章
- C# 序列化与反序列化几种格式的转换
这里介绍了几种方式之间的序列化与反序列化之间的转换 首先介绍的如何序列化,将object对象序列化常见的两种方式即string和xml对象; 第一种将object转换为string对象,这种比较简单没 ...
- 使用Newtonsoft.Json.dll(JSON.NET)动态解析JSON、.net 的json的序列化与反序列化(一)
在开发中,我非常喜欢动态语言和匿名对象带来的方便,JSON.NET具有动态序列化和反序列化任意JSON内容的能力,不必将它映射到具体的强类型对象,它可以处理不确定的类型(集合.字典.动态对象和匿名对象 ...
- Java 序列化与反序列化
1.什么是序列化?为什么要序列化? Java 序列化就是指将对象转换为字节序列的过程,而反序列化则是只将字节序列转换成目标对象的过程. 我们都知道,在进行浏览器访问的时候,我们看到的文本.图片.音频. ...
- C#中怎样实现序列化和反序列化
我们想要将数据进行持久化的操作的话,也就是将数据写入到文件中,我们在C#中可以通过IO流来操作,同时也可以通过序列化来操作,本人是比较推荐使用序列化操作的 因为我们如果想要将一个对象持久化到文件中 如 ...
- Java序列化与反序列化
Java序列化与反序列化是什么?为什么需要序列化与反序列化?如何实现Java序列化与反序列化?本文围绕这些问题进行了探讨. 1.Java序列化与反序列化 Java序列化是指把Java对象转换为字节序列 ...
- XPatchLib 对象增量数据序列化及反序列化器 For .Net
在日常的软件开发和使用过程中,我们发现同一套系统的同一配置项在不同的客户环境中是存在各种各样的差异的.在差异较为分散时,如何较好的管理这些差异,使得维护过程能够更加安全和快速,一直在这样那样的困扰着开 ...
- c# Json 自定义类作为字典键时,序列化和反序列化的处理方法
一般情况下,Newtonsoft.Json.dll 对 Dictionary<int,object>.Dictionary<string,object>等序列化与反序列化都是成 ...
- java 对象序列化与反序列化
Java序列化与反序列化是什么? 为什么需要序列化与反序列化? 如何实现Java序列化与反序列化? 本文围绕这些问题进行了探讨. 1.Java序列化与反序列化 Java序列化是指把Java对象转换为 ...
- 序列化,反序列化和transient关键字
一.序列化和反序列化的概念 序列化:指把java对象转换为字节序列的过程. 反序列化:指把字节序列恢复为java对象的过程. 对象的序列化主要有两种用途: 1) 把对象的字节序列保存到硬盘上,通常存放 ...
随机推荐
- 北京培训记day2
后缀三姐妹 P.S.后缀大家族关系:后缀自动机fail指针=后缀树,后缀树前序遍历=后缀数组 一.后缀数组:orz罗穗骞集训队论文 给每个后缀按字典序排序 rank[]表示从i开始的后缀排名多少 sa ...
- javaweb查看后台session和request所有的值
遍历session @RequestMapping(value ="/test2") public String upload2( HttpSession session) { E ...
- Nginx编译安装(Centos)
前言 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大 ...
- Linux--Tail命令
inux tail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端,通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新,tail会自己主动刷新,确保你看到最新的档案 ...
- http请求与响应(content-type)
http请求信息由浏览器把地址栏URL信息和页面(html.jsp.asp)组装成http请求消息体(如下). <request-line>(请求消息行)<headers>(请 ...
- CSS style和HTML style有什么区别?
https://zhidao.baidu.com/question/1238362131134658699.html 没有什么区别啊,都是样式的意思. 没有分别的!CSS提高代码重用性,加速浏览器下载 ...
- 制作宅基腐主页 && 制作个人简历--材料:BootStrap
宅基腐主页 主页分为四大板块:导航栏,轮播图,主页内容,相关信息. 导航栏:<nav>标签,class="navbar",navbar-inverse为反色,navba ...
- mysql代码执行漏洞
mysql (5.7, 5.6, 和 5.5版本)的所有默认安装配置,包括最新的版本,攻击者可以远程和本地利用该漏洞.该漏洞需要认证访问MYSQL数据库(通过网络连接或者像phpMyAdmin的we ...
- C# 开源框架
一.AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种 ...
- Bubble Cup 8 finals B. Bribes (575B)
题意: 给定一棵n个点和有向边构成的树,其中一些边是合法边,一些边是非法边, 经过非法边需要1的费用,并且经过之后费用翻倍. 给定一个长为m的序列,问从点1开始按顺序移动到序列中对应点的总费用. 1& ...