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

📄 book_text8.htm

📁 深入编程内幕vc++ 非常适合处学者学习
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0062)http://www1.ustc.edu.cn/personal/csli/insidec++/book_text8.htm -->
<HTML><HEAD><TITLE>Visual C++</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2900.2995" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId><LINK 
href="book_text8.files/style.css" type=text/css rel=stylesheet></HEAD>
<BODY bgColor=#f7fbff leftMargin=0 topMargin=0>
<TABLE height="100%" cellSpacing=0 cellPadding=0 width="100%" border=0>
  <TBODY>
  <TR>
    <TD width="3%" background=book_text8.files/page_side.gif 
height="100%"> </TD>
    <TD vAlign=top align=middle width="97%">
      <P 
      style="mso-line-height-alt: 1.3pt; tab-stops: right dotted 402.1pt"><SPAN 
      lang=EN-US 
      style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt"></O:P></SPAN></P>
      <TABLE height=23 width="99%" border=0>
        <TBODY>
        <TR>
          <TD width="2%" height=29></TD>
          <TD width="95%" height=29><PRE><A name=_Toc419881628><SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: MS Sans Serif; mso-bookmark: _Toc419740446"><B>三 深入<SPAN lang=EN-US>MFC类库</SPAN></B></SPAN></A></PRE></TD>
          <TD width="3%" height=29></TD></TR>
        <TR>
          <TD width="2%" height=15></TD>
          <TD width="95%" height=15>
            <H2 style="mso-line-height-alt: 1.3pt"><A name=_Toc419881637><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 18pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: MS Sans Serif; mso-bookmark: _Toc419740455">3</SPAN></A><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 18pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: Arial; mso-bookmark: _Toc419740455; mso-tab-count: 1"> 
            </SPAN><SPAN 
            style="FONT-SIZE: 18pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: MS Sans Serif; mso-bookmark: _Toc419740455">文件处理</SPAN><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 18pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: Arial"><O:P> 
            </O:P></SPAN></H2>
            <P class=MsoNormal 
            style="WORD-BREAK: break-all; TEXT-ALIGN: center; mso-line-height-alt: 1.3pt; punctuation-wrap: simple" 
            align=center><B style="mso-bidi-font-weight: normal"><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt">&nbsp;<O:P> 
            </O:P></SPAN></B></P>
            <P class=MsoNormal 
            style="WORD-BREAK: break-all; TEXT-INDENT: 21pt; mso-line-height-alt: 1.3pt; punctuation-wrap: simple"><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">几乎所有的软件都需要将程序当中的信息保存在磁盘存储器上面。这些信息可能是程序运行的初始化数据,或者是程序中计算得到的结果,还可能是程序经常用到的资料。从磁盘存储器上存取数据的工作往往是通过文件操作或者数据库操作来完成的。关于数据库操作的内容,我们将在后面的章节当中进行详细的介绍,在下面的内容中,我们主要讨论</SPAN><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">VC</SPAN><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">如何实现一般意义上的数据存取工作。<SPAN 
            lang=EN-US><O:P> </O:P></SPAN></SPAN></P>
            <P class=MsoNormal 
            style="WORD-BREAK: break-all; TEXT-INDENT: 21pt; mso-line-height-alt: 1.3pt; punctuation-wrap: simple"><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">VC</SPAN><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">是面向对象的开发平台,在使用</SPAN><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">MFC</SPAN><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">编写的程序中,我们定义和生成了各种各样的对象,通过它们之间的协同工作完成程序的功能。所以在</SPAN><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">MFC</SPAN><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">中,程序的存取工作的核心内容就是如何实现这些对象的持续化。一个可以实现持续化的对象知道如何保存和载入它们自己的数据。比方说,在程序使用</SPAN><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">MFC</SPAN><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">文档</SPAN><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">/</SPAN><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">视图结构的时候,如果为文档对象提供正确的持续化功能,它将在您需要的时候自动地保存和恢复自己的数据,并且保持用户最新的修改结果。需要注意的是对象的持续化同样是将数据保存到磁盘文件中去,它的好处在于</SPAN><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">MFC</SPAN><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">对二进制文件的存取过程进行了封装,使用来实现对象存取的程序代码得到了简化。</SPAN><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt"><O:P> 
            </O:P></SPAN></P>
            <P class=MsoNormal 
            style="WORD-BREAK: break-all; mso-line-height-alt: 1.3pt; punctuation-wrap: simple"><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'"><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; 
            </SPAN>当然,如果您更喜欢直接操作文件进行数据的存取工作,</SPAN><SPAN lang=EN-US 
            style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">MFC</SPAN><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">也提供了更为直接的渠道。</SPAN><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">CFile</SPAN><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">这个类封装了所有对文件的常用操作,使用</SPAN><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">CFile</SPAN><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">对象处理文件会比使用</SPAN><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">API</SPAN><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">函数简单得多。</SPAN><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt"><O:P> 
            </O:P></SPAN></P>
            <P class=MsoNormal 
            style="WORD-BREAK: break-all; mso-line-height-alt: 1.3pt; punctuation-wrap: simple"><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt">&nbsp;<O:P> 
            </O:P></SPAN></P>
            <H3 style="mso-line-height-alt: 1.3pt"><A name=_Toc419881638><SPAN 
            lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-hansi-font-family: Times New Roman; mso-bookmark: _Toc419740456">3.1 
            </SPAN></A><SPAN 
            style="FONT-FAMILY: 宋体; mso-hansi-font-family: MS Sans Serif; mso-bookmark: _Toc419740456">对象持续化简述</SPAN></H3>
            <P class=MsoNormal 
            style="WORD-BREAK: break-all; mso-line-height-alt: 1.3pt; punctuation-wrap: simple"><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'"><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>在</SPAN><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">MFC</SPAN><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">当中,对象的持续化功能主要是通过文档</SPAN><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">/</SPAN><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">视图结构当中文档对象的序列化机制来实现的。下面,我们将详细介绍如何使用序列化机制来实现对象的持续化。</SPAN><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt"><O:P> 
            </O:P></SPAN></P>
            <P class=MsoNormal 
            style="WORD-BREAK: break-all; mso-line-height-alt: 1.3pt; punctuation-wrap: simple"><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'"><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; 
            </SPAN>序列化,简单地说就是向一个持久性的存储媒体</SPAN><SPAN lang=EN-US 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'MS Sans Serif'; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: 宋体">——</SPAN><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">如磁盘文件保存对象或读取对象的过程。可以实现序列化的类</SPAN><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'MS Sans Serif'; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: 宋体">——</SPAN><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">即从</SPAN><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">CObject</SPAN><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">继承而来的类,有一个叫做</SPAN><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">Serialize</SPAN><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">的成员函数,序列化工作主要是在这个函数当中进行的。我们使用一张示意图来说明序列化的原理。</SPAN><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt"><O:P> 
            </O:P></SPAN></P>
            <P class=MsoNormal 
            style="WORD-BREAK: break-all; mso-line-height-alt: 1.3pt; punctuation-wrap: simple"><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt">&nbsp;<O:P> 
            </O:P></SPAN></P>
            <P class=MsoNormal 
            style="WORD-BREAK: break-all; mso-line-height-alt: 1.3pt; punctuation-wrap: simple"><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt"><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>MFC</SPAN><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'MS Sans Serif'">使用一个类型为</SPAN><SPAN 
            lang=EN-US 

⌨️ 快捷键说明

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