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

📄 untitled-18.txt

📁 mfc 教程
💻 TXT
字号:
6.2.4串行化工作过程
    看看实际中数据进出档案的串行化和并行化过程,可以帮助您进一步了解MFC的运作
过程及其体系结构。 MFC通过直接把原始数据类型如 nit和 DWORD复制到档案中从而实
现了该类型数据的串行化。为便于理解,下列引自MFC源代码文件A。core。pp中的程序,
说明了对于DWORD,CArchive中插人运算符的使用方法:
      CArch。ye& CArch。ye::operator<<(DWORD dw)
      3
            if(m一lpBufCur+ s。zeof(DWORD)>。lpBufMax)
                  Flllsh();
            if(!(In--nMode& bNoByteswap》
                .AfxByteswap(dw, In--lpBufCur);
                e工Se
                    。(DWORD。)。lpBufCur= dw;
            m--lpBufCur+= slzeof(DWORD);
              return兴this;
      g
为了提高执行效率,CArchive对象把接收到的数据保存在内部缓冲区。。lpBufCur指向该
缓冲区中数据的当前位置。如果缓冲区太满而不能再保存一个DWORD,它就会在DWORD
复制给它之前被清空。对于挂接在 CFile上的 CArchive对象,CA。hive:: Flush会将当前缓冲
区中的内容写人文件。
    CString、CRect以及其他从MFC类中生成的非原始数据类型以不同的方式串行化。例
如:对于串行化 CString,先输出字符数后输出字符本身。可以用  CArchive:: Write执行写人
操作。下列从Arccore.cpp中节选的程序段说明了一个包含不足255个字符的CString是如
何被串行化的:
      CArchive& AFXAPI operator<<(CArchive& ar, const CString& string)
          。f(string.GetData()->nDataLength< 255)
          3
              ar<<(BYTE)sir。ng.GetData()->nDataLength;
          z
          ar.Write(string。pchData,

⌨️ 快捷键说明

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