⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 untitled-13.txt

📁 mfc 教程
💻 TXT
字号:
将上面的运算符掉个方向,就可以从档案中读取字符串了。
        ly>> Stllflg;
可以用这种方式串行化的类包括: CString、CTime、CTimespan、C0leVariant、COleCurrency、C0le-
DateTime、C0leDateTimespan、CSize、CPoint和CRect。类型为SIZE、POINT和RECT的结构也可
以串行化。
    或许MFC串行化机制最强大的一面是:您能够创建自己的可串行化类,使它们与
CArchive的插人和提取运算符一起工作。并且为了使这些类工作,您也不必自己重载任何
运算符。什么原因呢?因为 MFC为指向 C0bject派生类的实例的指针重载了<<和>>运
算符。
    作为示范,假定您已经编写了一个绘图程序,它给出用户用Cline类实例画的线。再假
定CLine是直接或间接由C0bject派生来的可串行化类。如果pLines是CLine指针数组,
"Count是一个整型数,保存数组中指针的个数,而ar是一个CArchive对象,您可以按下面的
方式将每个CLine存档,并同时对Clines进行记数:
        ar<<   "Count;
      for(。nt。= o;。< "Count;。++)
          <I<< PL。nes[i」子
相反地,也可以根据档案中的信息重新创建CLines,并用下面的语句将pnnes初始化为
CLine指针:
        ar>>  "Count;
      for( Int  n= 0;  n< "Count;。++)
            ar>> vL。nesL。」;
怎样编写可串行化类,如 CLine呢?这很容易,下节就会介绍到。
    如果数据串行化或并行化时有错误发生,MFC会发送一个异常。异常的类型取决于错
误的性质。如果由于内存不足,串行化请求失败(例如:如果内存太少,不足以创建一个正
在并行化的对象的实例),MFC会发送一个CMemoryException。如果由于文件1/O出错,请求
失败,则MFC发送一个CFileException。如果发生了其他错误,MFC会发送一个CArchiveEx-
      。如果您喜欢,您可以给这些类型的异常提供“捕捉”处理程序,制定错误发生时自己
特有的处理方法。
6.2.2编写可串行化类
    如果一个对象支持串行化,那么它一定是可串行化类的实例。您可以按照以下五个步
骤编写可串行化类:
    1.直接或间接得到 CObject的派生类。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -