zoukankan      html  css  js  c++  java
  • MFC里存取我们自己的二进制对象的好帮手>CArchive类

    1.在类中添加

    .h文件中:

    注释//DECLARE_DYNAMIC(MyClass)

    添加DECLARE_SERIAL(MyClass)

    添加方法void Serialize(CArchive& ar);

     1 class MyClass: public CObject
     2 {
     3     //DECLARE_DYNAMIC(MyClass)
     4 public:
     5     DECLARE_SERIAL(MyClass)
     6     MyClass();
     7     ~MyClass();
     8     void Serialize(CArchive& ar);
     9 protected:
    10     //变量方法;
    11 private:
    12     //变量方法;
    13 };

    .cpp文件中

    //IMPLEMENT_DYNAMIC(MyClass, CWnd)

     IMPLEMENT_SERIAL(MyClass,CObject,1)

    并实现方法void Serialize(CArchive& ar);

     1 #include "MyClass.h"
     2 //IMPLEMENT_DYNAMIC(MyClass, CWnd)
     3 
     4 IMPLEMENT_SERIAL(MyClass,CObject,1)
     5 
     6 MyClass::MyClass(){...}
     7 
     8 void MyClass::Serialize(CArchive& ar)
     9 {
    10     if (ar.IsStoring())
    11     {
    12         ar<<变量<<变量;
    13     }
    14     else
    15     {
    16         ar>>变量>>变量;
    17     }
    18 }

    2.读写操作

     1 //写入:
     2  
     3 CFile   file( "c:\\aa.dat ",   CFile::modeCreate   | CFile::modeWrite);
     4 CArchive   ac(&file,   CArchive::store);
     5 myClass.Serialize(ar);
     6  
     7  //读取:
     8 
     9  CFile   file( "c:\\aa.dat ",   CFile::modeRead);
    10  CArchive   ac(&file,   CArchive::load);
    11  MyClass myClass = new MyClass();
    12  myClass.Serialize(ar);
    13  CString   s;
    14  s.Format( "%d ",   n);
    15  MessageBox(s);

    3.也可以参考

    http://www.cnblogs.com/ylhome/archive/2010/03/15/1686558.html

    不过我怎么就不能使用<<与>> 这两个流操作符呢?

    下次不加行号了!

    完全没有异常处理,有待添加!

  • 相关阅读:
    idea创建Javaweb项目
    装配bean,基于xml
    IoC(控制反转)和DI(依赖注入)
    jar包介绍
    使用的基本方法
    struts2的常量
    jar包
    调用函数,模块
    Vue中的指令(听博主说总结的很好)
    React的核心概念
  • 原文地址:https://www.cnblogs.com/jun14/p/2752780.html
Copyright © 2011-2022 走看看