友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
第三电子书 返回本书目录 加入书签 我的书架 我的书签 TXT全本下载 『收藏到我的浏览器』

C语言实例教程(PDF格式)-第2部分

快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!


用Visual  C++进行编程并不一定要使用MFC,使用MFC也不一定就要使 

用Visual C++,Borland C++的新版本也提供了对MFC的支持,然而事 

实上,在很多情况下,我们提到Visual   C++时指的就是MFC,而提到 

MFC时指的也就是Visual  C++。因此,当你看到关于Visual  C++或是 

MFC的资料时,要知道,在绝大多数情况下,它们都是指同一样东 

西。  



MFC相当彻底的封装了Win32软件开发工具包 (Software   Development  

Kit,即通常所说的SDK)中的结构、功能,它为编程者提供了一个应 

用程序框架,这个应用程序框架为编程者完成了很多Windows编程中 

的例行性工作,如管理窗口、菜单和对话框,执行基本的输入和输 


…………………………………………………………Page 10……………………………………………………………

出、使用集合类来保存数据对象等等,并且,MFC使得在程序中使用 

很多过去很专业、很复杂的编程课题,如ActiveX、OLE、本地数据库 

和开放式数据库互联 (Open Database Connectivity,简写为ODBC)、 

Windows套接字和Internet应用程序设计等,以及其它的应用程序界 

面特性,如属性页(也叫标签对话框)、打印和打印预览、浮动的和可 

定制的工具条变得更加的容易。  



早在1989年,Microsoft的程序员们开始试图将C++和面向对象的编程 

概念应用于Windows编程中,以编写出一个可以使Windows编程更加简 

便的应用程序框架。他们把这个应用程序框架叫做AFX  (AFX这个词来 

源于Application  Framework,但奇怪的是这个词组中并没有包含 

 “X”这个字母)。直到今天,AFX小组早已不存在了,AFX这个名称也 

于1994年初不再使用,但在Visual  C++和MFC中,AFX的影子却随处可 

见,很多全局函数、结构和宏的标识符都被加上了AFX的前缀。  



最初的AFX版本在经过一年的艰苦之后诞生,却未能被大多数Windows 

程序员所接受。AFX的确是经过了精心的规划和编码,并且,它也提 

供了对Windows API的高度抽象,建立了全新的面向对象的AFX API, 

但最要命的是AFX API库根本不兼容于现有的Windows API。由此导致 

的最严重后果是大量的SDK代码无法移植,而程序员将学习两种完全 

不同的编程方法。  



AFX不得不重新做所有的一切,他们所创建的新的应用程序框架是一 

套扩展的C++类,它封装和映射了Windows   API,这就是MFC的前身。 

过去的AFX小组也变成了MFC小组。最终,MFC的第一个公开版本于 

1992年3月随Microsoft C/C++ 7。0  (而不是Visual C++ 1。0)一起推 

出。那时距Windows  3。1发布尚有好几个月。在MFC  1。0中还没有文 

档/视结构,但有类CObject和CArchive。在12个月之后,MFC   2。0随 

Microsoft新的编程工具Visual C++ 1。0一道出炉。与MFC 1。0一样, 

MFC 2。0仍是16位的,因为32位的Windows NT 3。1直到1993年7月才问 

世。在MFC 2。0中,增加了对文档/视结构、OLE 1。0、Windows 3。1公 

用对话框的支持和消息映射等。在Windows NT 3。1面世一个月以后, 

Microsoft推出了32版本的Visual   C++和MFC   2。1,它实际上是MFC  

2。0的Win32接口。  



最后一个16位的Visual  C++编译器是1993年12月推出的Visual  C++  

1。5,直到今天,一些为Windows  3。1编写16位应用程序的程序员还在 

使用这个版本。1994年9月,32位的MFC 3。0伴随着Visual C++ 2。0的 

一道面市,在今天的计算机图书市场上,还有着的大量的关于Visual  

C++  2。0和MFC  3。0 的图书出售,因此,你可以想象得出Visual  C++  

2。0所取得的成功和它所产生的影响。并不象你预想的那样,在 


…………………………………………………………Page 11……………………………………………………………

Visual C++ 5。0中包括的MFC版本不是MFC 5。0,而是MFC 4。21。发展 

到今天,MFC已发展成一个稳定和涵盖极广的C++类库,为成千上万的 

Win32程序员所使用。MFC库是可扩展的,它和Windows技术的最新发 

展到目前为止始终是同步的。并且,MFC类库使用了标准的Windows命 

名约定和编码格式,所以有经验的Windows   SDK程序员很容易过渡到 

MFC。MFC结合了Windows   SDK编程概念和面向对象的程序设计技术, 

从而具有极大灵活性和易用性。  



         第二节 Visual C++ 5。0的版本及新特性  



Visual C++ 5。0是Microsoft于1997年4月推出的最新的Visual C++编 

译器,它包括三个版本。各个版本之间的区别如表1。1所示:  



            第三节 Visual C++ 5。0的新特性  



如果你没有使用过Visual   C++   4。x,或者虽然使用过Visual   C++  

4。x,但对它还不是非常之熟悉,那么你可以跳过这一节的内容,继 

续阅读本书的其它内容。在这一节里列举了Visual C++ 5。0中新增的 

所有特性,这些内容对熟练掌握了Visual C++ 4。x的程序员来说是很 

有用处的,他们可以通过阅读本节了解到Visual  C++  5。0所做的改 

进,从而知道自己应该补充的是哪一方面的内容。而对于Visual  C++ 

的初学者和刚入门者来说,了解这些内容就不是那么有必要了,尤其 

是当你急切地想进入Visual C++ 5。0的编程实践中去的时候。  



                 表1。1 Visual C++ 5。0的不同版本  



     版本         特点  



     学习版        除了代码优化、剖析程序 (一种分析程度的运行时行为 

      (Learning  的开发工具)和到MFC库的静态链接外,Visual C++ 5。0 

     Edition)   学习版提供了专业版的其它所有功能。学习版的价格要 

                比专业版本低很多,这是为了使希望使用Visual    C++  

                5。0来学习C++语言的个人也可以负担得起。但你不可以 

                使用Visual C++ 5。0学习版来开发供发布的软件,其授 

                权协议明确禁止这种做法。  



     专业版        Visual  C++  5。0可用来开发Win32应用程序、服务和控 

      (Professional  件。在这些应用程序、服务和控件中可使用由操作系统 

     Edition)   提供的图形用户界面或控制台API。  



     企业版        可用来开发和调试为Internet或企业内网(intranet)设 

      (Enterprise  计的客户…服务器应用程序。在Visual  C++  5。0企业版 

     Edition)   还包括了开发和调试SQL数据库应用程序和简化小组开 

                发的开发工具。  


…………………………………………………………Page 12……………………………………………………………

下面我们分版本来讲述Visual C++ 5。0相对于上一个版本所新增加的 

内容:  



   (1) 专业版  



在Visual C++ 5。0专业版中包括如下的新增特性:  



   C++语言  



  l 新增下列C++关键字:bool、explicit、false、mutable、true和 

   typename。  



  l 允许使用__declspec来声明指定的存储类属性是应用于某一类型 

   还是某一类型的一个变量。  



   编译器、链接器和NMAKE  



  l 编译器添加了对的支持,从而简化了使用对象的C++客户的 

   开发。为了演示如何使用该特性来支持,新增了如表1。2所示 

    的示例程序。  



            表1。2 为演示编译器对的支持而新增的示例程序  



        示例程序   演示内容  



        ACDUAL  MFC应用程序中双界面的支持  



        INPROC  进程内自动化服务器  



        MFCCALC  使用自动化服务器实现的一个简单计算器  



        EXCEL   单独运行的自动化客户程序。该程序创建一个新的 

                Microsoft Excel电子表格,并生成饼图。  



        IDE  单独运行的自动化客户程序。该程序自动操纵 

                Microsoft Developer Studio  



                                                   续表1。2 



        示例程序   演示内容  



        MAIL  单独运行的自动化客户程序。该程序为Microsoft  

                Exchange 4。0 自动操纵了MAPI  



        MMAP  不同接口入口映射宏的使用  


…………………………………………………………Page 13……………………………………………………………

     LABRADOR   ATL的使用。该程序实现了一个没有用户界面的EXE服 

            务器  



     FRETHREAD  使用编译器的支持编写多线程客户程序和自由线 

           程服务器  



     ALLINONE   MAC、STL、ATL和的使用  



l 使用/O1选项编译生成的代码大小将比Visual C++ 4。2版小5%到 

 10%。  



l 链接器使用了/FIXED选项来创建更小的供发行的应用程序。因 

 此,在使用剖析程序时,由于需要重定位信息,链接器必须使 

 用/PROFILE和/FIXED:NO选项。这同样适用于其它如 

 BoundsChecker或Purify之类的链接后 (post…link)工具。  



l 新增的/EH编译选项可以更有效的控制C++异常处理。C++同步异常 

 处理允许编译器生成更小的代码,因此它是Visual C++ 5。0新的 

 默认C++异常处理模式。  



l 对用来控制代码优化所面向的处理器的编译器选 

 项/G3、/G4、/G5、/G6和/GB作了修改。  



l 将/GX编译器选项映射为/EHsc。  



l 允许使用链接器选项/PDBTYPE指定包括调试信息的程序数据库 

 (PDB)。该选项可以节省磁盘空间并加快链接。  



l 在NMAKE 中支持批处理规则。  



 AppWizard  



l 新的AppWizard可以自动管理基于对话框的应用程序中的对话框 

 类。只需要简单的创建一个基于对话框的应用程序,并选择对 自 

 动化的支持,就可以象早期版本的AppWizard一样,得到一个支持 

 基本自动化的基于对话框的应用程序。通过单独的代理类,对话 

 框类也可以通过自动化导出。你可以添加方法和属性来导出对话 

 框中的元素。  



l 定制的AppWizard可以改变工程创建时的设定。例如,你可以在目 

 标创建之后调整编译器、链接器和查看设定或者添加定制的创建 

 步骤。  


…………………………………………………………Page 14……………………………………………………………

 MFC  



l asynchronous (URL) moniker允许应用程序异步的下载文件和控 

 件属性,以便在任务完成后为其它进程释放系统资源。  



l 可以在Web浏览器 (如Internet Explorer 3。0)或支持ActiveX文档 

 的OLE容器 (如Microsoft Office Binder)的整个客户区显示活动 

 的文档。  



l Win32 Internet API (WinInet)使Internet成为任意应用程序的 

 一个完整部分并简化了Internet服务,如FTP、HTTP和gopher的访 

 问。  



l 增加了对DAO 3。5的支持。  



l 增加了对ODBC 3。0的支持,并对MFC ODBC类作了几个重要的修 

 改。  



l COleDateTime成员函数SetDate、SetDateTime、SetTime的返回值 

 从BOOL改变为int。每一个成员函数当COleDateTime对象被正确设 

 置时返回0,否则返回1。该返回值基于DateTimeStatus枚举类 

 型。  



l 新增示例程序IMAGE。该程序生成一个可以异步下载数据的 

 ActiveX控件。  



 Active Template Library (ATL) 2。1  



l ATL 2。1版支持创建既小又快的ActiveX控件。  



 C Runtime Library  



l 新增的函数_itoa、_i64toa和_ui64toa将数据转换为一个以null 

 结尾的字符串。所对应的宽位字符版本为_itow、_i64tow和 

 _ui64tow为_itoa、_i64toa和_ui64toa。  



l 改善了下列的通用浮点超越函数的性能:pow、sqrt、log、 

 log10、sin、cos、tan、asin、acos、atan。  



l 改善了内存移动和内存拷贝函数的性能。  



 ANSI标准C++库  


…………………………………………………………Page 15……………………………………………………………

  l Visual C++的标准库遵从1996年9月24 日公布的ANSI C++ (X3J16) 

   工作单——ANSI Doc No。 X3J16/96…0178 WG21/N0996。该标准于 

   1996年7月在Stockholm会议上制定。  



   OLE DB  



  l OLE DB是一组OLE接口,它使应用程序可以以统一的方式访问保存 

   在不同信息源中的数据。这些接口支持适合于数据源的大量数据 

   库功能性,并允许数据源共享其数据。所配套的OLE DB软件开发 

   工具包所提供的一组软件部件、工具和文档可以在开发OLE DB客 

   户和提供程序提供帮助。  



   ERRLOOK工具  



  l ERRLOOK工具可以使用系统错误的值来检索相应的错误消息,其中 

   包括OLE HRESULT。错误值可以通过包括拖放、编辑命令等的多种 

   方法给出。由ERRLOOK所返回的错误消息文本可以复制并粘贴到其 

   它应用程序中。  



除了以上新增特性之外,在Visual          C++      5。0光盘上的 

DEVSTUDIOVCSAMPLES 目录下还包括了一些新增的示例程序。  



   (2) 企业版  



除包括专业版中的所有特性外,Visual C++ 5。0企业版还包括下列特 

性以支持企业级应用程序的开发:  



  l Microsoft Transaction Server (Microsoft事务服务器)用于创 

   建基于事务的应用程序。  



  l Visual Database Tools (可视化数据库工具)提供了数据库和SQL 

   查询的图形化设计。  



  l 调试数据库连接时具有更好的性能,该进程将比过去快上很多。  



  l 扩展的SQL数据类型支持使你可以方便的将本地变量变为除text和 

   image外的所有SQL数据类型。这种变换包括money类型和datetime 

   类型。可以在本地变量和NULL值之间相互变换。还可以方便的查 

   看包括text和image在内的所有SQL数据类型。  



  l 在光盘上的DEVSTUDIOVCSAMPLES 目录下包括了特定于企业的版 

   的新增示例程序。  


…………………………………………………………Page 16……………………………………………………………

   (3) 学习版  



Visual   C++   5。0学习版包括了学习C/C++和使用MFC、OLE、ODBC、 

DAO、ActiveX和的各种工具,但不包括下面的特性:  



  l 到MFC的静态链接  

   使用Vi
返回目录 上一页 下一页 回到顶部 1 1
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!