码迷,mamicode.com
首页 > 编程语言 > 详细

MFC中序列化

时间:2020-07-14 21:56:06      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:序列   serialize   car   五个   sizeof   c中   专用   object   style   

一、MFC中序列化的五个步骤:

  1. 继承自CObject类
  2. Serialize()函数
  3. 在类的申明中使用DECLARE_SERIAL 宏
  4. 定义一个无参数的构造函数(重建对象的时候要用)
  5. cpp文件中添加IMPLEMENT_SERIAL宏

 

如果类没重载<<和>>,可自行调用 ar.Write(&m_pen, sizeof(m_pen));和ar.EnsureRead(&m_brush, sizeof(m_brush));

 

 

void IShape::Serialize(CArchive &ar) {

    if (ar.IsStoring()) {

        // TODO:  在此添加存储代码

        

        ar << m_ptBegin << m_ptEnd;

        ar.Write(&m_pen, sizeof(m_pen));

        ar.Write(&m_brush, sizeof(m_brush));

    }

    else {

        // TODO:  在此添加加载代码

        ar >> m_ptBegin >> m_ptEnd;

        ar.EnsureRead(&m_pen, sizeof(m_pen));

        ar.EnsureRead(&m_brush, sizeof(m_brush));

    }

}

 

二.MFC中要序列化的类放在doc类中,在view类中通过GetDocument()->GetLstShapes();访问

 

void CMFCApplication1View::OnInitialUpdate() {

CView::OnInitialUpdate();

m_pLstShapes = GetDocument()->GetLstShapes();

 

// TODO: 在此添加专用代码和/或调用基类

}

 

MFC中序列化

标签:序列   serialize   car   五个   sizeof   c中   专用   object   style   

原文地址:https://www.cnblogs.com/Nutshelln/p/13301819.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!