当前位置: 首页 > news >正文

网站建设长沙十大最靠谱教育培训机构

网站建设长沙,十大最靠谱教育培训机构,网站建设 seo,房地产项目网站文章目录 Serialize对于存储文件的序列化 Serialize Serialize 是一个在 MFC (Microsoft Foundation Classes) 中常用的函数或概念。它用于将对象的数据进行序列化和反序列化,便于在不同的场景中保存、传输和恢复对象的状态。 在 MFC 中,Serialize 函数…

文章目录

  • Serialize
  • 对于存储文件的序列化

Serialize

Serialize 是一个在 MFC (Microsoft Foundation Classes) 中常用的函数或概念。它用于将对象的数据进行序列化和反序列化,便于在不同的场景中保存、传输和恢复对象的状态。

在 MFC 中,Serialize 函数通常是在派生自 CObject 的类中实现的。通过重写 Serialize 函数,可以定义如何将对象的数据转换成二进制格式(序列化),以及如何将二进制数据还原为对象的状态(反序列化)。

  • 以下是一个基本示例:
void CMyObject::Serialize(CArchive& ar)
{if (ar.IsStoring()){// 将对象的数据写入存档ar << m_member1;ar << m_member2;// ...}else{// 从存档中读取数据并恢复对象的状态ar >> m_member1;ar >> m_member2;// ...}
}

在上述示例中,如果 CArchive 的存储模式为存储(IsStoring 返回 true),则将对象的数据写入存档;否则,在加载模式下(IsStoring 返回 false),从存档中读取数据并恢复对象的状态。
通过使用 Serialize 函数,您可以方便地将对象的状态保存到磁盘文件、数据库或网络流中,以及从这些介质中恢复对象的状态。

对于存储文件的序列化

CModeItem.h

class CModeItem :public CObject
{//添加序列号功能DECLARE_SERIAL(CModeItem)
public:CModeItem();~CModeItem();//序列号函数void Serialize(CArchive& ar);CString m_sModeName;//姓名int m_nAge;//年龄CString m_sSex;//性别int m_nSize;//用来存储指针的大小
};//CTypedPtrArray 是 MFC  中的一个模板类,用于存储指针的动态数组。
//CObArray 是 MFC 中的另一个类,它是一个基于指针的对象数组,可以用来存储任意类型的指针
typedef CTypedPtrArray <CObArray, CModeItem*> CModeItems;

CModeItem.cpp

#include "pch.h"
#include "CModeItem.h"
IMPLEMENT_SERIAL(CModeItem, CObject, 1 )
//IMPLEMENT_SERIAL 是一个在 MFC 中使用的宏,用于简化类的序列化实现。
//IMPLEMENT_SERIAL 宏用于在派生自 CObject 的类中实现对象的序列化。
//通过使用该宏,您可以自动生成 Serialize 函数的实现代码,而无需手动编写。
//IMPLEMENT_SERIAL(class_name, base_class_name, schema_version)//class_name:要实现序列化的类的名称。//base_class_name:基类(通常为 CObject)的名称。//schema_version:序列化模式的版本号,用于支持向后兼容性。CModeItem::CModeItem()
{m_sModeName = _T("");m_nAge = 0;m_sSex = _T("");m_nSize = sizeof(CModeItem);}CModeItem::~CModeItem()
{
}void CModeItem::Serialize(CArchive & ar)
{UINT uVer = 1;CString sTag = _T("");//用来存储更多的标志,便于扩展//CArchive::IsLoading或CArchiv::IsStoreing来确定存档是正在加载还是正在存储。//Serialize由CArchive ::ReadObject和CArchive::WriteObject调用。//这些函数与C存档插入运算符( << )和提取运算符( >> )相关联。if (ar.IsLoading)//正在加载{ar >> uVer >> m_sModeName >> m_nAge >> m_sSex;//提起}else{ar << uVer << m_sModeName << m_nAge << m_sSex;//插入}
}

theApp.h
在这里插入图片描述theApp.cpp

int CSerializeDemoApp::InitData()
{TCHAR exeFullPath[MAX_PATH];GetModuleFileName(NULL, exeFullPath, MAX_PATH);m_sRunPath = exeFullPath;  //当前运行路径SetCurrentDirectory(m_sRunPath);int iFind = m_sRunPath.ReverseFind('\\');if (-1 != iFind){m_sRunPath = m_sRunPath.Left(iFind);CreateDirectory(m_sRunPath + _T("\\Log"), NULL);CreateDirectory(m_sRunPath + _T("\\sys"), NULL);CreateDirectory(m_sRunPath + _T("\\DATA"), NULL);}//lpszSection:要读取的配置文件的节(section)名称。//lpszEntry:要读取的配置文件中的条目(entry)名称。//nDefault:如果无法找到指定的配置文件或条目,则返回的默认值。m_nCurMode= GetProfileInt(_T("学生信息"), _T("当前学生"), 0);LoadMode();return 0;
}int CSerializeDemoApp::LoadMode(void)
{RemoveAllMode();CString sFile = m_sRunPath + _T("\\sys\\mode.student");CFile oFile;if (oFile.Open(sFile, CFile::modeRead)){CString sClass,nID;//以后可能要扩展的CArchive ar(&oFile, CArchive::load);try {m_oModes.Serialize(ar);}catch (...){}ar.Close();oFile.Close();}return 0;
}int CSerializeDemoApp::RemoveAllMode(void)
{for (int n = m_oModes.GetSize() - 1; n >= 0; --n){delete m_oModes[n];}m_oModes.RemoveAll();return 0;
}int CSerializeDemoApp::SaveMode(void)
{CString sFile = m_sRunPath + _T("\\sys\\mode.student");CFile oFile;if (oFile.Open(sFile, CFile::modeWrite | CFile::modeCreate)){CString sClass, nID;//以后可能要扩展的CArchive ar(&oFile, CArchive::store);try {m_oModes.Serialize(ar);}catch (...){}ar.Close();oFile.Close();}return 0;
}
http://www.zhongyajixie.com/news/21652.html

相关文章:

  • 百度云建网站网页搜索优化seo
  • 做模版网站西安seo建站
  • 做的比较好的猎头网站网站点击量查询
  • 怎么在百度上做自己的网站广州四楚seo顾问
  • 做网站一般收取多少钱uc推广登录入口
  • 四川省住房和城乡建设厅网站电话seo专业培训费用
  • 网站建设与管理初级教学网络销售推广公司
  • 十堰网站制作价格网站模板免费下载
  • cn免费域名注册网站营销型网站建设多少钱
  • 做进口货的电商网站东莞营销网站建设优化
  • 政府网站建设栏目内容互联网广告营销方案
  • html5网站建设百度指数搜索榜度指数
  • 微网站开发素材重庆seo是什么
  • 桂林企业网站建设淘宝指数官网的网址
  • 如何用ps做网站首页图片衡阳seo
  • 烟台市芝罘区住房和建设局网站推销一个产品的方案
  • 局域网电脑做网站服务器网推平台
  • 让网站会员做产品标签确认百度引流推广
  • 电商网站开发商推广方式有哪些
  • 商家怎样入驻微信小程序优化大师win10能用吗
  • 萧山网站建设公司网络运营培训班多少钱
  • 苏州企业网站优化百度电脑版下载安装
  • 留言板网站模板软文网站名称
  • 网站自动更新网络营销软文范例大全800
  • 广告设计与制作实训总结2000字沈阳seo排名优化教程
  • 哪些网站做家政推广深圳专业seo
  • javaweb做商业网站网络销售
  • 餐饮 网站 模板seo教学平台
  • 淘宝网站是哪个公司做的手机营销推广方案
  • 深圳龙岗小学排名灯塔网站seo