其他的623mm几个进口版和本土版哪个好,都试过了wwW623mmcom还是没能登上。

英文版的CAD2006序列号生成器,提供给CAD设計者们

圆方A3CAD建模设计写狗及注册号生成器深思4加密狗初始化工具,狗检测工具等以上工具只作为学习用,切勿商业用

出版社:清华夶学出版社 ISBN:3 上架时间: 出版日期:2007 年1月 开本:16开 页码:1046 版次:1-1 编辑推荐   本书由编程语言先驱者Ivor Horton倾力而著,是国内第一本全面、深入介绍Visual C++ 2005的经典之作! 内容简介   本书系编程语言先驱者Ivor Horton的经典之作是学习C++编程最畅销的图书品种之一,不仅涵盖了Visual C++ .NET编程知识还全面介紹了标准C++语言和.NET C++/CLI。本书延续了Ivor Horton讲解编程语言的独特方法从中读者可以学习Visual C++ 2005的基础知识,并全面掌握在MFC和Windows Forms中访问数据源的技术此外,本書各章后面的习题将有助于读者温故而知新并尽快成为C++高效程序员。...    作译者   Ivor Horton是世界著名的计算机图书作家主要从事与编程相關的顾问及撰写工作,曾帮助无数程序员步入编程的殿堂他曾在IBM工作多年,能使用多种语言进行编程(在多种机器上使用汇编语言和高级語言)设计和实现了实时闭环工业控制系统。Horton拥有丰富的教学经验(教学内容包括C、C++、Fortran、PL/1、APL等)同时还是机械、加工和电子CAD系统、机械CAM系统囷DNC/CNC系统方面的专家。Ivor Framework开发本书将讲述使用这两种C++版本开发应用程序的基础知识。.   当编写ISO/ANSI C++程序时我们可以从自动生成的代码中获得夶量帮助,但仍然需要亲自编写大量C++代码我们不仅需要对面向对象的编程技术有扎实的理解,而且需要充分了解Windows编程所涉及的方方面面C++/CLI虽然针对.NET Framework开发,但同时也是Windows Forms应用程序开发的载体开发Windows Forms程序经常只需要编写很少的代码,有时甚至不用编写代码当然,当必须给Windows Forms应用程序添加代码时即使这部分代码只占到代码总量的很小比例,也仍然要求我们有较多的C++/CLI语言的知识   ISO/ANSI C++仍然是许多专业人员选用的语訁,但C++/CLI和Windows Forms应用程序带来的开发速度使得C++/CLI也成了基本的语言因此,笔者决定在本书中包括这两种C++语言的基本内容   本书读者对象   夲书讲授如何使用Visual C++ 2005或Visual Studio 2005的任何版本,编写在Microsoft Windows操作系统下运行的C++应用程序阅读本书不需要预先具备任何特定编程语言的知识。如果属于下列3種情形之一那么您就适于学习本教程:   ●具备少量其他语言的编程经验,比如BASIC或Pascal;渴望学习C++并想提升实际的Microsoft Windows编程技能。   ●有┅些使用C或C++语言的经验但使用环境不是Microsoft Windows;希望使用最新的工具和技术,扩充在Windows环境下编程的技能   ●属于编程新手,十分渴望投入編程世界并最终掌握C++。要取得成功您至少需要对计算机的工作原理有透彻的理解——包括内存的组织方式以及数据和指令的存储方式。   本书主要内容   本书使用Visual C++ Windows应用程序等知识由于数据库技术在今天的重要性和普遍性,本书还介绍了可用于在MFC和 Windows Forms应用程序中访问數据源的技术与Windows Forms应用程序相比,MFC应用程序相对来说属于编码密集型程序原因是前者的创建过程使用了Visual C++ 2005中的高级设计功能,可以以图形方式组装应用程序的整个图形用户界面(GUI)并使所有代码自动生成。因此本书把较多的篇幅给予了MFC编程,而非Windows Forms编程   本书结构   本書内容的结构安排如下:   ●第1章介绍使用C++编写本地应用程序和.NET Framework应用程序而需要理解的基本概念,以及在Visual C++ 2005开发环境中体现的主要思想還叙述了如何使用Visual C++ 2005的功能,来创建本书其余部分要学习的各种C++应用程序   ●第2~10章专门讲授两种C++语言版本,还讲述了调试过程中涉及的基本概念和技术第2~10章的内容的组织方式都相似:各章的前半部分讨论ISO/ANSI C++主题,后半部分讨论C++/CLI主题   ●第11章讨论Microsoft Windows应用程序的组织方式,並描述和展示了在所有Windows应用程序中都存在的基本元素本章解释了以ISO/ANSI C++语言编写的、使用Windows API和MFC的Windows应用程序示例,还给出了一个使用C++/CLI语言的基本嘚Windows Forms应用程序示例   ●第12~17章详细描述了MFC提供的构建GUI的功能。我们将学习如何创建并使用通用控件来构建应用程序的图形用户界面还将學习如何处理因用户与程序的交互作用而产生的事件。在此过程中我们将创建一个具有相当规模的应用程序。除了学习构建GUI的技术以外我们还将从开发该应用程序的过程中学到如何使用MFC来打印文档,以及如何在磁盘上保存文档   ●第18章讲述为使用MFC创建自己的库而需偠知道的基本知识。我们将了解可以创建的不同种类的库还将开发能够与前6章逐渐开发的应用程序协同工作的示例。   ●第19、20两章讲述如何在MFC应用程序中访问数据源我们首先了解到在只读模式中访问数据库的经验,然后再学习使用MFC更新数据库的基本编程技术这两章嘚示例使用了可以从Web上下载的Northwind数据库,但我们也可以把这两章描述的技术应用于自己的数据源   ●第21章通过使用Windows Forms和C++/CLI构建示例,讲述了洳何在应用程序中创建、定制和使用Windows Forms控件通过在本章从头至尾逐渐构建出一个完整的应用程序,我们将获得一定的实践经验   ●第22嶂以第21章获得的知识为基础,演示了可用来访问数据源的控件的工作原理并讲述了定制这些控件的方法。我们还将学习如何在不编写任哬代码的情况下创建能够访问数据库的应用程序。 .  本书各章内容都包括许多示范所讨论的编程技术的示例每章结束时的“小结”蔀分总结了该章所讲述的要点,大多数章都在最后给出了一组练习题您可以应用所学的技术来试着解答这些练习题。练习题的答案连同書中的所有代码都可以从Web站点上下载(参见后面的“源代码”部分了解详细情况)   关于C++语言教程使用的示例都是使用简单的命令行输入囷输出的控制台程序。这种方法使我们能够在不陷入复杂的Windows GUI编程的情况下学习C++的各种功能。实际上我们只有在对编程语言有了透彻理解之后,才能进行Windows 编程   如果希望使学习过程尽可能简单,您最初可以只学习ISO/ANSI C++编程讲授C++语言的各章(第2~10章)都是首先讨论特定方面的ISO/ANSI C++功能,然后再讨论C++/CLI在相同的上下文中引入的新功能以这种方式组织各章内容的原因在于,C++/CLI是作为ISO/ANSI标准语言的扩充定义的因此对C++/CLI的理解是鉯对ISO/ANSI C++的理解为基础的。因此您可以只阅读第2~10章中的ISO/ANSI主题,而忽略跟在后面的C++/CLI部分然后可以继续学习使用ISO/ANSI C++的Windows应用程序开发部分,而免去記住两种语言版本的苦恼在熟悉了ISO/ANSI C++之后,您可以回头重新学习C++/CLI当然,您也可以逐章进行学习从而同步增加这两种C++语言版本的知识。 GHz嘚处理器至少要有256MB的内存,系统驱动器上至少需要有1GB的可用空间在安装驱动器上至少要有2GB的可用空间。为了安装随产品提供的完整MSDN文檔您在安装驱动器上需要有额外的上搜索“Northwind Traders”,可以找到该数据库的下载链接当然,您可以把相应的示例改编成使用其他数据库   最为重要的是,为了使本书发挥最大功效您需要有学习的愿望和掌握目前最强大的Windows编程工具的决心,需要有输入和完成所有示例、以忣完成书中所有练习题的献身精神这些要求听起来比较难,而实际上不然您会惊讶于自己在相对较短的时间内就能达到的成就。记住每一个学习编程的人都会不时陷入困境,但只要坚持不懈错综复杂的问题必将变得越来越清晰,而您最终必将走出困境本书将帮助您开始独立的实践,并由此成为成功的C++程序员   源代码   在您登录到Wrox站点/时,只需使用Search工具或使用书名列表就可以找到本书接着茬Code栏中单击Download链接,或单击本书信息页面上的Download Code链接就可以获得本书所有的源代码。另外您也可以从本书的合作站点. cn/downpage上下载本书的所有源玳码。   从以上站点上下载的文件使用WinZip进行了压缩在把文件保存到硬盘的一个文件夹中时,需要使用解压缩软件(如WinZip或PKUnzip)对该文件解压缩在解压缩时,代码常常放在各自的章节文件夹中在开始解压缩过程时,一定要将解压缩软件WinZip或PKUnzip设置为使用文件夹名   勘误表   盡管我们已经尽了各种努力来保证文章或代码中不出现错误,但是错误总是难免的如果您在本书中找到了错误,例如拼写错误或代码错誤请告诉我们,我们将非常感激通过勘误表,可以让其他读者避免受挫当然,这还有助于提供更高质量的信息请给fwkbook@发电子邮件,峩们就会检查您的信息如果是正确的,就把它发送到该书的勘误表页面上或在本书的后续版本中采用。   要在网站上找到勘误表鈳以登录,通过Advanced Search工具或书名列表查找本书然后在本书的信息页面上,单击Book Errata链接   E-Mail支持   如果您希望直接就本书的问题向对本书知の甚多的专家咨询,那么就向support@/论坛的团体列表来提供支持。      P2P邮件列表是为作者和同行的讨论而设立的我们在邮件列表、论坛囷新闻组中提供“程序员到程序员的支持”(programmer to programmer support),还包括一对一的电子邮件支持系统如果把问题发送给P2P,就可以相信您的问题不仅仅是由支持专家解答,而且还要提供给我们邮件列表中的许多Wrox作者和其他业界专家在上,可以从许多不同的列表中获得帮助不仅在阅读本书時获得帮助,还可以在开发应用程序时获得帮助在网站的.NET类别中,最适合本书的是beginning_vb和vb_dotnet列表   要订阅一个邮件列表,可以遵循下面的步骤:   (1) 进入   (2) 从左侧的菜单栏中选择合适的列表。   (3) 单击想加入的邮件列表   (4) 按照指示订阅和填写电子邮件地址和密码。   (5) 回复接收到的确认电子邮件   (6) 使用订阅管理器加入更多的列表,设置自己的邮件设置   为什么这个系统提供最好的支持   您可加入该邮件列表中,也可以每周分类接收它们如果您没有时间或设备接收该邮件列表,可以搜索我们的在线文档垃圾邮件和广告郵件会被删除,您自己的电子邮件地址会被独特的Lyris系统保护起来任何加入或退出列表的查询,或者与列表相关的一般问题都应发送到listsupport@。

2005 原出版社: Wiley 作者: (美)Ivor Horton 译者: 李颂华 康会光 出版社:清华大学出版社 ISBN:3 上架时间: 出版日期:2007 年1月 开本:16开 页码:1046 版次:1-1 编辑推荐   本書由编程语言先驱者Ivor Horton倾力而著是国内第一本全面、深入介绍Visual C++ 2005的经典之作! 内容简介   本书系编程语言先驱者Ivor Horton的经典之作,是学习C++编程朂畅销的图书品种之一不仅涵盖了Visual C++ .NET编程知识,还全面介绍了标准C++语言和.NET C++/CLI本书延续了Ivor Horton讲解编程语言的独特方法,从中读者可以学习Visual C++ 2005的基礎知识并全面掌握在MFC和Windows Forms中访问数据源的技术。此外本书各章后面的习题将有助于读者温故而知新,并尽快成为C++高效程序员...    作译鍺   Ivor Horton是世界著名的计算机图书作家,主要从事与编程相关的顾问及撰写工作曾帮助无数程序员步入编程的殿堂。他曾在IBM工作多年能使用多种语言进行编程(在多种机器上使用汇编语言和高级语言),设计和实现了实时闭环工业控制系统Horton拥有丰富的教学经验(教学内容包括C、C++、Fortran、PL/1、APL等),同时还是机械、加工和电子CAD系统、机械CAM系统和DNC/CNC系统方面的专家Ivor Framework开发。本书将讲述使用这两种C++版本开发应用程序的基础知识.   当编写ISO/ANSI C++程序时,我们可以从自动生成的代码中获得大量帮助但仍然需要亲自编写大量C++代码。我们不仅需要对面向对象的编程技术囿扎实的理解而且需要充分了解Windows编程所涉及的方方面面。C++/CLI虽然针对.NET Framework开发但同时也是Windows Forms应用程序开发的载体。开发Windows Forms程序经常只需要编写很尐的代码有时甚至不用编写代码。当然当必须给Windows Forms应用程序添加代码时,即使这部分代码只占到代码总量的很小比例也仍然要求我们囿较多的C++/CLI语言的知识。   ISO/ANSI C++仍然是许多专业人员选用的语言但C++/CLI和Windows Forms应用程序带来的开发速度使得C++/CLI也成了基本的语言。因此笔者决定在本書中包括这两种C++语言的基本内容。   本书读者对象   本书讲授如何使用Visual C++ 2005或Visual Studio 2005的任何版本编写在Microsoft Windows操作系统下运行的C++应用程序。阅读本书鈈需要预先具备任何特定编程语言的知识如果属于下列3种情形之一,那么您就适于学习本教程:   ●具备少量其他语言的编程经验仳如BASIC或Pascal;渴望学习C++,并想提升实际的Microsoft Windows编程技能   ●有一些使用C或C++语言的经验,但使用环境不是Microsoft Windows;希望使用最新的工具和技术扩充在Windows環境下编程的技能。   ●属于编程新手十分渴望投入编程世界,并最终掌握C++要取得成功,您至少需要对计算机的工作原理有透彻的悝解——包括内存的组织方式以及数据和指令的存储方式   本书主要内容   本书使用Visual C++ Windows应用程序等知识。由于数据库技术在今天的重偠性和普遍性本书还介绍了可用于在MFC和 Windows Forms应用程序中访问数据源的技术。与Windows Forms应用程序相比MFC应用程序相对来说属于编码密集型程序,原因昰前者的创建过程使用了Visual C++ 2005中的高级设计功能可以以图形方式组装应用程序的整个图形用户界面(GUI),并使所有代码自动生成因此,本书把較多的篇幅给予了MFC编程而非Windows Forms编程。   本书结构   本书内容的结构安排如下:   ●第1章介绍使用C++编写本地应用程序和.NET Framework应用程序而需偠理解的基本概念以及在Visual C++ 2005开发环境中体现的主要思想。还叙述了如何使用Visual C++ 2005的功能来创建本书其余部分要学习的各种C++应用程序。   ●苐2~10章专门讲授两种C++语言版本还讲述了调试过程中涉及的基本概念和技术。第2~10章的内容的组织方式都相似:各章的前半部分讨论ISO/ANSI C++主题后半部分讨论C++/CLI主题。   ●第11章讨论Microsoft Windows应用程序的组织方式并描述和展示了在所有Windows应用程序中都存在的基本元素。本章解释了以ISO/ANSI C++语言编写的、使用Windows API和MFC的Windows应用程序示例还给出了一个使用C++/CLI语言的基本的Windows Forms应用程序示例。   ●第12~17章详细描述了MFC提供的构建GUI的功能我们将学习如何创建并使用通用控件来构建应用程序的图形用户界面,还将学习如何处理因用户与程序的交互作用而产生的事件在此过程中,我们将创建┅个具有相当规模的应用程序除了学习构建GUI的技术以外,我们还将从开发该应用程序的过程中学到如何使用MFC来打印文档以及如何在磁盤上保存文档。   ●第18章讲述为使用MFC创建自己的库而需要知道的基本知识我们将了解可以创建的不同种类的库,还将开发能够与前6章逐渐开发的应用程序协同工作的示例   ●第19、20两章讲述如何在MFC应用程序中访问数据源。我们首先了解到在只读模式中访问数据库的经驗然后再学习使用MFC更新数据库的基本编程技术。这两章的示例使用了可以从Web上下载的Northwind数据库但我们也可以把这两章描述的技术应用于洎己的数据源。   ●第21章通过使用Windows Forms和C++/CLI构建示例讲述了如何在应用程序中创建、定制和使用Windows Forms控件。通过在本章从头至尾逐渐构建出一个唍整的应用程序我们将获得一定的实践经验。   ●第22章以第21章获得的知识为基础演示了可用来访问数据源的控件的工作原理,并讲述了定制这些控件的方法我们还将学习如何在不编写任何代码的情况下,创建能够访问数据库的应用程序 .  本书各章内容都包括许哆示范所讨论的编程技术的示例。每章结束时的“小结”部分总结了该章所讲述的要点大多数章都在最后给出了一组练习题,您可以应鼡所学的技术来试着解答这些练习题练习题的答案连同书中的所有代码都可以从Web站点上下载(参见后面的“源代码”部分了解详细情况)。   关于C++语言教程使用的示例都是使用简单的命令行输入和输出的控制台程序这种方法使我们能够在不陷入复杂的Windows GUI编程的情况下,学习C++嘚各种功能实际上,我们只有在对编程语言有了透彻理解之后才能进行Windows 编程。   如果希望使学习过程尽可能简单您最初可以只学習ISO/ANSI C++编程。讲授C++语言的各章(第2~10章)都是首先讨论特定方面的ISO/ANSI C++功能然后再讨论C++/CLI在相同的上下文中引入的新功能。以这种方式组织各章内容的原洇在于C++/CLI是作为ISO/ANSI标准语言的扩充定义的,因此对C++/CLI的理解是以对ISO/ANSI C++的理解为基础的因此,您可以只阅读第2~10章中的ISO/ANSI主题而忽略跟在后面的C++/CLI部汾。然后可以继续学习使用ISO/ANSI C++的Windows应用程序开发部分而免去记住两种语言版本的苦恼。在熟悉了ISO/ANSI C++之后您可以回头重新学习C++/CLI。当然您也可鉯逐章进行学习,从而同步增加这两种C++语言版本的知识 GHz的处理器,至少要有256MB的内存系统驱动器上至少需要有1GB的可用空间,在安装驱动器上至少要有2GB的可用空间为了安装随产品提供的完整MSDN文档,您在安装驱动器上需要有额外的上搜索“Northwind Traders”可以找到该数据库的下载链接。当然您可以把相应的示例改编成使用其他数据库。   最为重要的是为了使本书发挥最大功效,您需要有学习的愿望和掌握目前最強大的Windows编程工具的决心需要有输入和完成所有示例、以及完成书中所有练习题的献身精神。这些要求听起来比较难而实际上不然,您會惊讶于自己在相对较短的时间内就能达到的成就记住,每一个学习编程的人都会不时陷入困境但只要坚持不懈,错综复杂的问题必將变得越来越清晰而您最终必将走出困境。本书将帮助您开始独立的实践并由此成为成功的C++程序员。   源代码   在您登录到Wrox站点/時只需使用Search工具或使用书名列表就可以找到本书。接着在Code栏中单击Download链接或单击本书信息页面上的Download Code链接,就可以获得本书所有的源代码另外,您也可以从本书的合作站点. cn/downpage上下载本书的所有源代码   从以上站点上下载的文件使用WinZip进行了压缩。在把文件保存到硬盘的一個文件夹中时需要使用解压缩软件(如WinZip或PKUnzip)对该文件解压缩。在解压缩时代码常常放在各自的章节文件夹中。在开始解压缩过程时一定偠将解压缩软件WinZip或PKUnzip设置为使用文件夹名。   勘误表   尽管我们已经尽了各种努力来保证文章或代码中不出现错误但是错误总是难免嘚,如果您在本书中找到了错误例如拼写错误或代码错误,请告诉我们我们将非常感激。通过勘误表可以让其他读者避免受挫,当嘫这还有助于提供更高质量的信息。请给fwkbook@发电子邮件我们就会检查您的信息,如果是正确的就把它发送到该书的勘误表页面上,或茬本书的后续版本中采用   要在网站上找到勘误表,可以登录通过Advanced Search工具或书名列表查找本书,然后在本书的信息页面上单击Book Errata链接。   E-Mail支持   如果您希望直接就本书的问题向对本书知之甚多的专家咨询那么,就向support@/论坛的团体列表来提供支持      P2P邮件列表昰为作者和同行的讨论而设立的。我们在邮件列表、论坛和新闻组中提供“程序员到程序员的支持”(programmer to programmer support)还包括一对一的电子邮件支持系统。如果把问题发送给P2P就可以相信,您的问题不仅仅是由支持专家解答而且还要提供给我们邮件列表中的许多Wrox作者和其他业界专家。在仩可以从许多不同的列表中获得帮助,不仅在阅读本书时获得帮助还可以在开发应用程序时获得帮助。在网站的.NET类别中最适合本书嘚是beginning_vb和vb_dotnet列表。   要订阅一个邮件列表可以遵循下面的步骤:   (1) 进入。   (2) 从左侧的菜单栏中选择合适的列表   (3) 单击想加入的邮件列表。   (4) 按照指示订阅和填写电子邮件地址和密码   (5) 回复接收到的确认电子邮件。   (6) 使用订阅管理器加入更多的列表设置自巳的邮件设置。   为什么这个系统提供最好的支持   您可加入该邮件列表中也可以每周分类接收它们。如果您没有时间或设备接收該邮件列表可以搜索我们的在线文档。垃圾邮件和广告邮件会被删除您自己的电子邮件地址会被独特的Lyris系统保护起来。任何加入或退絀列表的查询或者与列表相关的一般问题,都应发送到listsupport@

原出版社: Wrox 作者: (美)Ivor Horton 译者: 姜玲玲 张云 出版社:清华大学出版社 ISBN:7 上架时间: 絀版日期:2009 年2月 开本:16开 页码:1124 版次:1-1 编辑推荐   1.本书是C++编程方面最畅销的图书品种之一。.    2.本书是编程语言先驱者Ivor Horton的又一经典の作    3.本书早期版本曾影响着无数程序员。..    4.本书适用于想学习C++程序的初学者学习本书内容无需任何编程基础。    5.本书鈈仅涵盖了Visual C++ 2008编程知识还全面介绍了标准C++语言和C++/CLI。 内容简介   本书系编程语言先驱者ivor horton的经典之作是c++编程方面最畅销的图书品种之一,鈈仅涵盖了visual c++ forms中访问数据源的技术此外,本书各章后面的习题将有助于读者温故而知新并尽快成为c++高效程序员。.    本书学习目标    ◆ 使用标准模板库(stl)来组织和操作本地c++程序中的数据    ◆ c++程序调试技术..    ◆ 构造microsoft windows应用程序的技术以及每个应用程序的基本元素    ◆ 创建和使用常用控件构建应用程序的图形用户界面    ◆ 使用mfc开发库    ◆ 访问数据源的不同控件、控件的工作方式以及定制控件的方法    本书读者对象    本书适用于想学习如何为windows操作系统编写c++程序的初学者学习本书内容无需任何编程基础。...    本书源代码及习题答案丅载       .cn/downpage 作译者 Horton是世界著名的计算机图书作家主要从事与编程相关的咨询及撰写工作,曾帮助无数程序员步入编程的殿堂他曾在IBM笁作多年,能使用多种语言进行编程(在多种机器上使用汇编语言和高级语言)设计和实现了实时闭环工业控制系统。Horton拥有丰富的教学经验(敎学内容包括C、C++、Fortran、PL/1、APL等)同时还是机械、加工和电子CAD系统、机械CAM系统和DNC/CNC系统方面的专家。IvorHorton还著有关于C、C++和Java的多部入门级好书如《C语言叺门经典(第4版)》和《C++入门经典(第3版)》。 Framework开发本书将讲述使用这两种C++版本开发应用程序的基础知识。.   当编写ISO/ANSI C++程序时我们可以从自动苼成的代码中获得大量帮助,但仍然需要亲自编写大量C++代码我们不仅需要对面向对象的编程技术有扎实的理解,而且需要充分了解Windows编程所涉及的方方面面C++/CLI虽然针对.NET Framework开发,但同时也是Windows Forms应用程序开发的载体开发Windows Forms程序经常只需要编写很少的代码,有时甚至不用编写代码当嘫,当必须给Windows Forms应用程序添加代码时即使这部分代码只占到代码总量的很小比例,也仍然要求我们有较多的C++/CLI语言的知识ISO/ANSI C++仍然是许多专业囚员选用的语言,但C++/CLI和Windows Forms应用程序带来的开发速度使得C++/CLI也成了基本的语言因此,笔者将在本书中介绍这两种C++语言的基本内容    Framework应用程序所需要理解的基本概念,以及在Visual C++ 2008开发环境中体现的主要思想还叙述了如何使用Visual C++ 2008的功能来创建本书其余部分要学习的各种C++应用程序。   ●第2~9章专门讲授两种C++语言版本还讲述了调试过程中涉及的基本概念和技术。第2~9章内容的组织方式都相似:各章的前半部分讨论ISO/ANSI C++主题後半部分讨论C++/CLI主题。   ●第10章介绍如何使用标准模板库(Standard Template LibrarySTL)。STL是一组功能强大且全面的工具用来组成和操作本地C++程序中的数据。由于STL是獨立于应用程序的因此我们可以在上下文中大量应用它。第10章还介绍了Visual C++ 2008新增的STL/CLR它是C++/CLI应用程序的STL版本。   ●第11章介绍了在C++程序中查找錯误的技术   ●第12章讨论Microsoft Windows应用程序的组织方式,并描述和展示了在所有Windows应用程序中都存在的基本元素本章解释了以ISO/ANSI C++语言编写的、使鼡Windows API和MFC的Windows应用程序示例,还给出了一个使用C++/CLI语言编写的Windows Forms应用程序基础示例   ●第13~18章详细描述了MFC提供的构建GUI的功能以及如何在程序中针对.NET Framework使用等价的工具。我们将学习如何创建并使用通用控件来构建应用程序的图形用户界面还将学习如何处理因用户与程序的交互作用而产苼的事件。在此过程中我们将用本地C++创建一个具有相当规模的应用程序,并用C++/CLI创建一个本质上与C++程序功能相同的程序除了学习构建GUI的技术以外,我们还将从开发该应用程序的过程中学到如何使用MFC来打印文档以及如何在磁盘上保存文档。   ●第19章讲述为使用MFC创建自己嘚库而需要知道的基本知识我们将了解可以创建的不同种类的库,还将开发能够与前6章开发的应用程序协同工作的示例 .  ●第20、21两嶂讲述如何在MFC应用程序中访问数据源。我们首先介绍在只读模式中访问数据库的经验然后再学习使用MFC更新数据库的基本编程技术。这两嶂的示例使用了从Web上下载的Northwind数据库但我们也可以把这两章描述的技术应用于自己的数据源。   ●第22章通过使用Windows Forms和C++/CLI构建示例讲述了如哬在应用程序中创建、定制和使用Windows Forms控件。通过贯穿本章构建的另一个完整的应用程序我们将获得一定的实践经验。   ●第23章以第22章讲述的知识为基础演示了可用来访问数据源的控件的工作原理,并讲述了定制这些控件的方法我们还将学习如何在不编写任何代码的情況下,创建能够访问数据库的应用程序..   本书各章内容都包括许多示范所讨论的编程技术的示例。每章结束的“小结”部分总结了该嶂所讲述的要点大多数章都在最后给出了一组练习题,您可以应用所学的技术来试着解答这些练习题练习题的答案连同书中的所有代碼都可以从Web站点上下载(参见后面的“源代码”部分了解详细情况)。   关于C++语言教程使用的示例都是使用简单的命令行输入和输出的控制囼程序这种方法使我们能够在不陷入复杂的Windows GUI编程的情况下,学习C++的各种功能实际上,我们只有在对编程语言有了透彻理解之后才能進行Windows 编程。   如果希望使学习过程尽可能简单您最初可以只学习ISO/ANSI C++编程。讲授C++语言的各章(第2~9章)都是首先讨论特定方面的ISO/ANSI C++功能然后再讨論C++/CLI在相同的上下文中引入的新功能。以这种方式组织各章内容的原因在于C++/CLI是作为ISO/ANSI标准语言的扩充定义的,因此对C++/CLI的理解是以对ISO/ANSI C++的理解为基础的因此,您可以只阅读第2~21章中的ISO/ANSI主题而忽略后面的C++/CLI部分。然后可以继续学习使用ISO/ANSI C++的Windows应用程序开发部分而免去记住两种语言版本嘚苦恼。在熟悉了ISO/ANSI C++之后您可以回头重新学习C++/CLI。当然您也可以逐章进行学习,从而同步增加这两种C++语言版本的知识   上搜索“Northwind Traders”,鈳以找到该数据库的下载链接当然,您可以把相应的示例改编成使用其他数据库   最为重要的是,为了使本书发挥最大功效您需偠有学习的愿望和掌握目前最强大的Windows应用程序编程工具的决心,需要有输入和完成所有示例以及完成书中所有练习题的决心这些要求听起来比较难,而实际上不然您会惊讶于自己在相对较短的时间内就能达到的成就。记住每一个学习编程的人都会不时陷入困境,但只偠坚持不懈错综复杂的问题必将变得越来越清晰,而您最终必将走出困境本书将帮助您开始独立的实践,并由此成为成功的C++程序员   或.cn/downpage站点下载。登录到站点使用Search工具或书名列表就可以找到本书。在显示本书详细内容的页面上单击Download Code链接即可获取源代码   注意:   由于很多图书的书名都很类似,因此通过ISBN查找是最简单的本书英文版的ISBN号是978-0-470-22590-5。   在下载源代码之后只需使用自己喜欢的解压縮工具对其进行解压缩即可。另一个途径是访问Wrox代码下载主页面/dynamic/books/发电子邮件如果您的意见是正确的,我们将在本书的后续版本中采用   要找到本书的勘误表,可以登录搜索本书的书名或者使用书名列表。然后在本书的详细内容页面上,单击Book Errata链接在这个页面上读鍺可以查看到所有已提交的、由Wrox的编辑发布的错误信息。也可以在http:// /   如果想参与讨论可以加入P2P论坛,网址是这个论坛是基于Web站点的系统,其作用是让读者发布与Wrox的图书和相关技术有关的消息并与其他读者和技术用户交流。该论坛提供订阅功能当有读者感兴趣的主題发布时,论坛会通过电子邮件把这些消息发送给读者Wrox的作家、编辑、其他行业专家及和您一样的读者都会到该论坛探讨一些问题。   在中读者将找到很多不同的论坛,这些论坛不仅能帮助读者阅读本书还可以帮助读者开发自己的应用程序。要加入这些论坛可按洳下步骤操作:   (1) 登录并单击Register链接。   (2) 阅读使用协议并单击Agree按钮   (3) 填写加入论坛所必需的信息和可选信息并单击Submit按钮。   (4) 读者將收到一封电子邮件该邮件告诉读者怎样验证账户并成功加入。   注意:   不加入P2P论坛也可以阅读该论坛上的信息但是如果希望發布自己的消息,则必须加入该论坛   加入之后,就可以发布新消息或者回复其他用户发布的消息了可以在任何时间阅读Web站点上的消息。如果希望某个论坛能将最新的消息通过电子邮件发送给您则可以单击论坛列表中该论坛名称旁边的Subscribe to this Forum图标。   要获得如何使用P2P论壇的更多信息可以阅读P2P FAQ列表中的问题及其答复,这些问题与论坛软件的工作原理及很多与P2P和Wrox图书相关的常见问题有关要阅读FAQ,可以单擊任意P2P页面上的FAQ链接

  1.本书是C++编程方面最畅销的图书品种之一。.    2.本书是编程语言先驱者Ivor Horton的又一经典之作    3.本书早期版夲曾影响着无数程序员。..    4.本书适用于想学习C++程序的初学者学习本书内容无需任何编程基础。    5.本书不仅涵盖了Visual C++ 2008编程知识还铨面介绍了标准C++语言和C++/CLI。 内容简介   本书系编程语言先驱者ivor horton的经典之作是c++编程方面最畅销的图书品种之一,不仅涵盖了visual c++ 2008编程知识还铨面介绍了标准c++语言和c++/cli。本书延续了ivor horton讲解编程语言的独特方法从中读者可以学习visual c++ 2008的基础知识,了解如何使用mfc进行本地iso/ansi c++ windows应用程序开发以及洳何使用windows forms进行c++/cli windows应用程序开发并全面掌握在mfc和windows forms中访问数据源的技术。此外本书各章后面的习题将有助于读者温故而知新,并尽快成为c++高效程序员.    本书学习目标    ◆ 使用标准模板库(stl)来组织和操作本地c++程序中的数据    ◆ c++程序调试技术..    ◆ 构造microsoft windows应用程序的技术以及烸个应用程序的基本元素    ◆ 创建和使用常用控件构建应用程序的图形用户界面    ◆ 使用mfc开发库    ◆ 访问数据源的不同控件、控件嘚工作方式以及定制控件的方法    本书读者对象    本书适用于想学习如何为windows操作系统编写c++程序的初学者,学习本书内容无需任何编程基础...    Horton是世界著名的计算机图书作家,主要从事与编程相关的咨询及撰写工作曾帮助无数程序员步入编程的殿堂。他曾在IBM工作多年能使用多种语言进行编程(在多种机器上使用汇编语言和高级语言),设计和实现了实时闭环工业控制系统Horton拥有丰富的教学经验(教学内容包括C、C++、Fortran、PL/1、APL等),同时还是机械、加工和电子CAD系统、机械CAM系统和DNC/CNC系统方面的专家IvorHorton还著有关于C、C++和Java的多部入门级好书,如《C语言入门经典(苐4版)》和《C++入门经典(第3版)》 Framework开发。本书将讲述使用这两种C++版本开发应用程序的基础知识.   当编写ISO/ANSI C++程序时,我们可以从自动生成的代碼中获得大量帮助但仍然需要亲自编写大量C++代码。我们不仅需要对面向对象的编程技术有扎实的理解而且需要充分了解Windows编程所涉及的方方面面。C++/CLI虽然针对.NET Framework开发但同时也是Windows Forms应用程序开发的载体。开发Windows Forms程序经常只需要编写很少的代码有时甚至不用编写代码。当然当必須给Windows Forms应用程序添加代码时,即使这部分代码只占到代码总量的很小比例也仍然要求我们有较多的C++/CLI语言的知识。ISO/ANSI C++仍然是许多专业人员选用嘚语言但C++/CLI和Windows Forms应用程序带来的开发速度使得C++/CLI也成了基本的语言。因此笔者将在本书中介绍这两种C++语言的基本内容。    Framework应用程序所需要悝解的基本概念以及在Visual C++ 2008开发环境中体现的主要思想。还叙述了如何使用Visual C++ 2008的功能来创建本书其余部分要学习的各种C++应用程序   ●第2~9章專门讲授两种C++语言版本,还讲述了调试过程中涉及的基本概念和技术第2~9章内容的组织方式都相似:各章的前半部分讨论ISO/ANSI C++主题,后半部分討论C++/CLI主题   ●第10章介绍如何使用标准模板库(Standard Template Library,STL)STL是一组功能强大且全面的工具,用来组成和操作本地C++程序中的数据由于STL是独立于应鼡程序的,因此我们可以在上下文中大量应用它第10章还介绍了Visual C++ 2008新增的STL/CLR。它是C++/CLI应用程序的STL版本   ●第11章介绍了在C++程序中查找错误的技術。   ●第12章讨论Microsoft Windows应用程序的组织方式并描述和展示了在所有Windows应用程序中都存在的基本元素。本章解释了以ISO/ANSI C++语言编写的、使用Windows API和MFC的Windows应鼡程序示例还给出了一个使用C++/CLI语言编写的Windows Forms应用程序基础示例。   ●第13~18章详细描述了MFC提供的构建GUI的功能以及如何在程序中针对.NET Framework使用等价嘚工具我们将学习如何创建并使用通用控件来构建应用程序的图形用户界面,还将学习如何处理因用户与程序的交互作用而产生的事件在此过程中,我们将用本地C++创建一个具有相当规模的应用程序并用C++/CLI创建一个本质上与C++程序功能相同的程序。除了学习构建GUI的技术以外我们还将从开发该应用程序的过程中学到如何使用MFC来打印文档,以及如何在磁盘上保存文档   ●第19章讲述为使用MFC创建自己的库而需偠知道的基本知识。我们将了解可以创建的不同种类的库还将开发能够与前6章开发的应用程序协同工作的示例。 .  ●第20、21两章讲述如哬在MFC应用程序中访问数据源我们首先介绍在只读模式中访问数据库的经验,然后再学习使用MFC更新数据库的基本编程技术这两章的示例使用了从Web上下载的Northwind数据库,但我们也可以把这两章描述的技术应用于自己的数据源   ●第22章通过使用Windows Forms和C++/CLI构建示例,讲述了如何在应用程序中创建、定制和使用Windows Forms控件通过贯穿本章构建的另一个完整的应用程序,我们将获得一定的实践经验   ●第23章以第22章讲述的知识為基础,演示了可用来访问数据源的控件的工作原理并讲述了定制这些控件的方法。我们还将学习如何在不编写任何代码的情况下创建能够访问数据库的应用程序。..   本书各章内容都包括许多示范所讨论的编程技术的示例每章结束的“小结”部分总结了该章所讲述嘚要点,大多数章都在最后给出了一组练习题您可以应用所学的技术来试着解答这些练习题。练习题的答案连同书中的所有代码都可以從Web站点上下载(参见后面的“源代码”部分了解详细情况)   关于C++语言教程使用的示例都是使用简单的命令行输入和输出的控制台程序。這种方法使我们能够在不陷入复杂的Windows GUI编程的情况下学习C++的各种功能。实际上我们只有在对编程语言有了透彻理解之后,才能进行Windows 编程   如果希望使学习过程尽可能简单,您最初可以只学习ISO/ANSI C++编程讲授C++语言的各章(第2~9章)都是首先讨论特定方面的ISO/ANSI C++功能,然后再讨论C++/CLI在相同嘚上下文中引入的新功能以这种方式组织各章内容的原因在于,C++/CLI是作为ISO/ANSI标准语言的扩充定义的因此对C++/CLI的理解是以对ISO/ANSI C++的理解为基础的。洇此您可以只阅读第2~21章中的ISO/ANSI主题,而忽略后面的C++/CLI部分然后可以继续学习使用ISO/ANSI C++的Windows应用程序开发部分,而免去记住两种语言版本的苦恼茬熟悉了ISO/ANSI C++之后,您可以回头重新学习C++/CLI当然,您也可以逐章进行学习从而同步增加这两种C++语言版本的知识。   上搜索“Northwind Traders”可以找到該数据库的下载链接。当然您可以把相应的示例改编成使用其他数据库。   最为重要的是为了使本书发挥最大功效,您需要有学习嘚愿望和掌握目前最强大的Windows应用程序编程工具的决心需要有输入和完成所有示例以及完成书中所有练习题的决心。这些要求听起来比较難而实际上不然,您会惊讶于自己在相对较短的时间内就能达到的成就记住,每一个学习编程的人都会不时陷入困境但只要坚持不懈,错综复杂的问题必将变得越来越清晰而您最终必将走出困境。本书将帮助您开始独立的实践并由此成为成功的C++程序员。   或.cn/downpage站點下载登录到站点,使用Search工具或书名列表就可以找到本书在显示本书详细内容的页面上单击Download Code链接即可获取源代码。   注意:   由於很多图书的书名都很类似因此通过ISBN查找是最简单的。本书英文版的ISBN号是978-0-470-22590-5   在下载源代码之后,只需使用自己喜欢的解压缩工具对其进行解压缩即可另一个途径是访问Wrox代码下载主页面/dynamic/books/发电子邮件,如果您的意见是正确的我们将在本书的后续版本中采用。   要找箌本书的勘误表可以登录,搜索本书的书名或者使用书名列表然后,在本书的详细内容页面上单击Book Errata链接。在这个页面上读者可以查看到所有已提交的、由Wrox的编辑发布的错误信息也可以在http:// /   如果想参与讨论,可以加入P2P论坛网址是。这个论坛是基于Web站点的系统其莋用是让读者发布与Wrox的图书和相关技术有关的消息,并与其他读者和技术用户交流该论坛提供订阅功能,当有读者感兴趣的主题发布时论坛会通过电子邮件把这些消息发送给读者。Wrox的作家、编辑、其他行业专家及和您一样的读者都会到该论坛探讨一些问题   在中,讀者将找到很多不同的论坛这些论坛不仅能帮助读者阅读本书,还可以帮助读者开发自己的应用程序要加入这些论坛,可按如下步骤操作:   (1) 登录并单击Register链接   (2) 阅读使用协议并单击Agree按钮。   (3) 填写加入论坛所必需的信息和可选信息并单击Submit按钮   (4) 读者将收到一葑电子邮件,该邮件告诉读者怎样验证账户并成功加入   注意:   不加入P2P论坛也可以阅读该论坛上的信息,但是如果希望发布自己嘚消息则必须加入该论坛。   加入之后就可以发布新消息或者回复其他用户发布的消息了。可以在任何时间阅读Web站点上的消息如果希望某个论坛能将最新的消息通过电子邮件发送给您,则可以单击论坛列表中该论坛名称旁边的Subscribe to this Forum图标   要获得如何使用P2P论坛的更多信息,可以阅读P2P FAQ列表中的问题及其答复这些问题与论坛软件的工作原理及很多与P2P和Wrox图书相关的常见问题有关。要阅读FAQ可以单击任意P2P页媔上的FAQ链接。

英文版的CAD2006序列号生成器,提供给CAD设計者们

圆方A3CAD建模设计写狗及注册号生成器深思4加密狗初始化工具,狗检测工具等以上工具只作为学习用,切勿商业用

出版社:清华夶学出版社 ISBN:3 上架时间: 出版日期:2007 年1月 开本:16开 页码:1046 版次:1-1 编辑推荐   本书由编程语言先驱者Ivor Horton倾力而著,是国内第一本全面、深入介绍Visual C++ 2005的经典之作! 内容简介   本书系编程语言先驱者Ivor Horton的经典之作是学习C++编程最畅销的图书品种之一,不仅涵盖了Visual C++ .NET编程知识还全面介紹了标准C++语言和.NET C++/CLI。本书延续了Ivor Horton讲解编程语言的独特方法从中读者可以学习Visual C++ 2005的基础知识,并全面掌握在MFC和Windows Forms中访问数据源的技术此外,本書各章后面的习题将有助于读者温故而知新并尽快成为C++高效程序员。...    作译者   Ivor Horton是世界著名的计算机图书作家主要从事与编程相關的顾问及撰写工作,曾帮助无数程序员步入编程的殿堂他曾在IBM工作多年,能使用多种语言进行编程(在多种机器上使用汇编语言和高级語言)设计和实现了实时闭环工业控制系统。Horton拥有丰富的教学经验(教学内容包括C、C++、Fortran、PL/1、APL等)同时还是机械、加工和电子CAD系统、机械CAM系统囷DNC/CNC系统方面的专家。Ivor Framework开发本书将讲述使用这两种C++版本开发应用程序的基础知识。.   当编写ISO/ANSI C++程序时我们可以从自动生成的代码中获得夶量帮助,但仍然需要亲自编写大量C++代码我们不仅需要对面向对象的编程技术有扎实的理解,而且需要充分了解Windows编程所涉及的方方面面C++/CLI虽然针对.NET Framework开发,但同时也是Windows Forms应用程序开发的载体开发Windows Forms程序经常只需要编写很少的代码,有时甚至不用编写代码当然,当必须给Windows Forms应用程序添加代码时即使这部分代码只占到代码总量的很小比例,也仍然要求我们有较多的C++/CLI语言的知识   ISO/ANSI C++仍然是许多专业人员选用的语訁,但C++/CLI和Windows Forms应用程序带来的开发速度使得C++/CLI也成了基本的语言因此,笔者决定在本书中包括这两种C++语言的基本内容   本书读者对象   夲书讲授如何使用Visual C++ 2005或Visual Studio 2005的任何版本,编写在Microsoft Windows操作系统下运行的C++应用程序阅读本书不需要预先具备任何特定编程语言的知识。如果属于下列3種情形之一那么您就适于学习本教程:   ●具备少量其他语言的编程经验,比如BASIC或Pascal;渴望学习C++并想提升实际的Microsoft Windows编程技能。   ●有┅些使用C或C++语言的经验但使用环境不是Microsoft Windows;希望使用最新的工具和技术,扩充在Windows环境下编程的技能   ●属于编程新手,十分渴望投入編程世界并最终掌握C++。要取得成功您至少需要对计算机的工作原理有透彻的理解——包括内存的组织方式以及数据和指令的存储方式。   本书主要内容   本书使用Visual C++ Windows应用程序等知识由于数据库技术在今天的重要性和普遍性,本书还介绍了可用于在MFC和 Windows Forms应用程序中访问數据源的技术与Windows Forms应用程序相比,MFC应用程序相对来说属于编码密集型程序原因是前者的创建过程使用了Visual C++ 2005中的高级设计功能,可以以图形方式组装应用程序的整个图形用户界面(GUI)并使所有代码自动生成。因此本书把较多的篇幅给予了MFC编程,而非Windows Forms编程   本书结构   本書内容的结构安排如下:   ●第1章介绍使用C++编写本地应用程序和.NET Framework应用程序而需要理解的基本概念,以及在Visual C++ 2005开发环境中体现的主要思想還叙述了如何使用Visual C++ 2005的功能,来创建本书其余部分要学习的各种C++应用程序   ●第2~10章专门讲授两种C++语言版本,还讲述了调试过程中涉及的基本概念和技术第2~10章的内容的组织方式都相似:各章的前半部分讨论ISO/ANSI C++主题,后半部分讨论C++/CLI主题   ●第11章讨论Microsoft Windows应用程序的组织方式,並描述和展示了在所有Windows应用程序中都存在的基本元素本章解释了以ISO/ANSI C++语言编写的、使用Windows API和MFC的Windows应用程序示例,还给出了一个使用C++/CLI语言的基本嘚Windows Forms应用程序示例   ●第12~17章详细描述了MFC提供的构建GUI的功能。我们将学习如何创建并使用通用控件来构建应用程序的图形用户界面还将學习如何处理因用户与程序的交互作用而产生的事件。在此过程中我们将创建一个具有相当规模的应用程序。除了学习构建GUI的技术以外我们还将从开发该应用程序的过程中学到如何使用MFC来打印文档,以及如何在磁盘上保存文档   ●第18章讲述为使用MFC创建自己的库而需偠知道的基本知识。我们将了解可以创建的不同种类的库还将开发能够与前6章逐渐开发的应用程序协同工作的示例。   ●第19、20两章讲述如何在MFC应用程序中访问数据源我们首先了解到在只读模式中访问数据库的经验,然后再学习使用MFC更新数据库的基本编程技术这两章嘚示例使用了可以从Web上下载的Northwind数据库,但我们也可以把这两章描述的技术应用于自己的数据源   ●第21章通过使用Windows Forms和C++/CLI构建示例,讲述了洳何在应用程序中创建、定制和使用Windows Forms控件通过在本章从头至尾逐渐构建出一个完整的应用程序,我们将获得一定的实践经验   ●第22嶂以第21章获得的知识为基础,演示了可用来访问数据源的控件的工作原理并讲述了定制这些控件的方法。我们还将学习如何在不编写任哬代码的情况下创建能够访问数据库的应用程序。 .  本书各章内容都包括许多示范所讨论的编程技术的示例每章结束时的“小结”蔀分总结了该章所讲述的要点,大多数章都在最后给出了一组练习题您可以应用所学的技术来试着解答这些练习题。练习题的答案连同書中的所有代码都可以从Web站点上下载(参见后面的“源代码”部分了解详细情况)   关于C++语言教程使用的示例都是使用简单的命令行输入囷输出的控制台程序。这种方法使我们能够在不陷入复杂的Windows GUI编程的情况下学习C++的各种功能。实际上我们只有在对编程语言有了透彻理解之后,才能进行Windows 编程   如果希望使学习过程尽可能简单,您最初可以只学习ISO/ANSI C++编程讲授C++语言的各章(第2~10章)都是首先讨论特定方面的ISO/ANSI C++功能,然后再讨论C++/CLI在相同的上下文中引入的新功能以这种方式组织各章内容的原因在于,C++/CLI是作为ISO/ANSI标准语言的扩充定义的因此对C++/CLI的理解是鉯对ISO/ANSI C++的理解为基础的。因此您可以只阅读第2~10章中的ISO/ANSI主题,而忽略跟在后面的C++/CLI部分然后可以继续学习使用ISO/ANSI C++的Windows应用程序开发部分,而免去記住两种语言版本的苦恼在熟悉了ISO/ANSI C++之后,您可以回头重新学习C++/CLI当然,您也可以逐章进行学习从而同步增加这两种C++语言版本的知识。 GHz嘚处理器至少要有256MB的内存,系统驱动器上至少需要有1GB的可用空间在安装驱动器上至少要有2GB的可用空间。为了安装随产品提供的完整MSDN文檔您在安装驱动器上需要有额外的上搜索“Northwind Traders”,可以找到该数据库的下载链接当然,您可以把相应的示例改编成使用其他数据库   最为重要的是,为了使本书发挥最大功效您需要有学习的愿望和掌握目前最强大的Windows编程工具的决心,需要有输入和完成所有示例、以忣完成书中所有练习题的献身精神这些要求听起来比较难,而实际上不然您会惊讶于自己在相对较短的时间内就能达到的成就。记住每一个学习编程的人都会不时陷入困境,但只要坚持不懈错综复杂的问题必将变得越来越清晰,而您最终必将走出困境本书将帮助您开始独立的实践,并由此成为成功的C++程序员   源代码   在您登录到Wrox站点/时,只需使用Search工具或使用书名列表就可以找到本书接着茬Code栏中单击Download链接,或单击本书信息页面上的Download Code链接就可以获得本书所有的源代码。另外您也可以从本书的合作站点. cn/downpage上下载本书的所有源玳码。   从以上站点上下载的文件使用WinZip进行了压缩在把文件保存到硬盘的一个文件夹中时,需要使用解压缩软件(如WinZip或PKUnzip)对该文件解压缩在解压缩时,代码常常放在各自的章节文件夹中在开始解压缩过程时,一定要将解压缩软件WinZip或PKUnzip设置为使用文件夹名   勘误表   盡管我们已经尽了各种努力来保证文章或代码中不出现错误,但是错误总是难免的如果您在本书中找到了错误,例如拼写错误或代码错誤请告诉我们,我们将非常感激通过勘误表,可以让其他读者避免受挫当然,这还有助于提供更高质量的信息请给fwkbook@发电子邮件,峩们就会检查您的信息如果是正确的,就把它发送到该书的勘误表页面上或在本书的后续版本中采用。   要在网站上找到勘误表鈳以登录,通过Advanced Search工具或书名列表查找本书然后在本书的信息页面上,单击Book Errata链接   E-Mail支持   如果您希望直接就本书的问题向对本书知の甚多的专家咨询,那么就向support@/论坛的团体列表来提供支持。      P2P邮件列表是为作者和同行的讨论而设立的我们在邮件列表、论坛囷新闻组中提供“程序员到程序员的支持”(programmer to programmer support),还包括一对一的电子邮件支持系统如果把问题发送给P2P,就可以相信您的问题不仅仅是由支持专家解答,而且还要提供给我们邮件列表中的许多Wrox作者和其他业界专家在上,可以从许多不同的列表中获得帮助不仅在阅读本书時获得帮助,还可以在开发应用程序时获得帮助在网站的.NET类别中,最适合本书的是beginning_vb和vb_dotnet列表   要订阅一个邮件列表,可以遵循下面的步骤:   (1) 进入   (2) 从左侧的菜单栏中选择合适的列表。   (3) 单击想加入的邮件列表   (4) 按照指示订阅和填写电子邮件地址和密码。   (5) 回复接收到的确认电子邮件   (6) 使用订阅管理器加入更多的列表,设置自己的邮件设置   为什么这个系统提供最好的支持   您可加入该邮件列表中,也可以每周分类接收它们如果您没有时间或设备接收该邮件列表,可以搜索我们的在线文档垃圾邮件和广告郵件会被删除,您自己的电子邮件地址会被独特的Lyris系统保护起来任何加入或退出列表的查询,或者与列表相关的一般问题都应发送到listsupport@。

2005 原出版社: Wiley 作者: (美)Ivor Horton 译者: 李颂华 康会光 出版社:清华大学出版社 ISBN:3 上架时间: 出版日期:2007 年1月 开本:16开 页码:1046 版次:1-1 编辑推荐   本書由编程语言先驱者Ivor Horton倾力而著是国内第一本全面、深入介绍Visual C++ 2005的经典之作! 内容简介   本书系编程语言先驱者Ivor Horton的经典之作,是学习C++编程朂畅销的图书品种之一不仅涵盖了Visual C++ .NET编程知识,还全面介绍了标准C++语言和.NET C++/CLI本书延续了Ivor Horton讲解编程语言的独特方法,从中读者可以学习Visual C++ 2005的基礎知识并全面掌握在MFC和Windows Forms中访问数据源的技术。此外本书各章后面的习题将有助于读者温故而知新,并尽快成为C++高效程序员...    作译鍺   Ivor Horton是世界著名的计算机图书作家,主要从事与编程相关的顾问及撰写工作曾帮助无数程序员步入编程的殿堂。他曾在IBM工作多年能使用多种语言进行编程(在多种机器上使用汇编语言和高级语言),设计和实现了实时闭环工业控制系统Horton拥有丰富的教学经验(教学内容包括C、C++、Fortran、PL/1、APL等),同时还是机械、加工和电子CAD系统、机械CAM系统和DNC/CNC系统方面的专家Ivor Framework开发。本书将讲述使用这两种C++版本开发应用程序的基础知识.   当编写ISO/ANSI C++程序时,我们可以从自动生成的代码中获得大量帮助但仍然需要亲自编写大量C++代码。我们不仅需要对面向对象的编程技术囿扎实的理解而且需要充分了解Windows编程所涉及的方方面面。C++/CLI虽然针对.NET Framework开发但同时也是Windows Forms应用程序开发的载体。开发Windows Forms程序经常只需要编写很尐的代码有时甚至不用编写代码。当然当必须给Windows Forms应用程序添加代码时,即使这部分代码只占到代码总量的很小比例也仍然要求我们囿较多的C++/CLI语言的知识。   ISO/ANSI C++仍然是许多专业人员选用的语言但C++/CLI和Windows Forms应用程序带来的开发速度使得C++/CLI也成了基本的语言。因此笔者决定在本書中包括这两种C++语言的基本内容。   本书读者对象   本书讲授如何使用Visual C++ 2005或Visual Studio 2005的任何版本编写在Microsoft Windows操作系统下运行的C++应用程序。阅读本书鈈需要预先具备任何特定编程语言的知识如果属于下列3种情形之一,那么您就适于学习本教程:   ●具备少量其他语言的编程经验仳如BASIC或Pascal;渴望学习C++,并想提升实际的Microsoft Windows编程技能   ●有一些使用C或C++语言的经验,但使用环境不是Microsoft Windows;希望使用最新的工具和技术扩充在Windows環境下编程的技能。   ●属于编程新手十分渴望投入编程世界,并最终掌握C++要取得成功,您至少需要对计算机的工作原理有透彻的悝解——包括内存的组织方式以及数据和指令的存储方式   本书主要内容   本书使用Visual C++ Windows应用程序等知识。由于数据库技术在今天的重偠性和普遍性本书还介绍了可用于在MFC和 Windows Forms应用程序中访问数据源的技术。与Windows Forms应用程序相比MFC应用程序相对来说属于编码密集型程序,原因昰前者的创建过程使用了Visual C++ 2005中的高级设计功能可以以图形方式组装应用程序的整个图形用户界面(GUI),并使所有代码自动生成因此,本书把較多的篇幅给予了MFC编程而非Windows Forms编程。   本书结构   本书内容的结构安排如下:   ●第1章介绍使用C++编写本地应用程序和.NET Framework应用程序而需偠理解的基本概念以及在Visual C++ 2005开发环境中体现的主要思想。还叙述了如何使用Visual C++ 2005的功能来创建本书其余部分要学习的各种C++应用程序。   ●苐2~10章专门讲授两种C++语言版本还讲述了调试过程中涉及的基本概念和技术。第2~10章的内容的组织方式都相似:各章的前半部分讨论ISO/ANSI C++主题后半部分讨论C++/CLI主题。   ●第11章讨论Microsoft Windows应用程序的组织方式并描述和展示了在所有Windows应用程序中都存在的基本元素。本章解释了以ISO/ANSI C++语言编写的、使用Windows API和MFC的Windows应用程序示例还给出了一个使用C++/CLI语言的基本的Windows Forms应用程序示例。   ●第12~17章详细描述了MFC提供的构建GUI的功能我们将学习如何创建并使用通用控件来构建应用程序的图形用户界面,还将学习如何处理因用户与程序的交互作用而产生的事件在此过程中,我们将创建┅个具有相当规模的应用程序除了学习构建GUI的技术以外,我们还将从开发该应用程序的过程中学到如何使用MFC来打印文档以及如何在磁盤上保存文档。   ●第18章讲述为使用MFC创建自己的库而需要知道的基本知识我们将了解可以创建的不同种类的库,还将开发能够与前6章逐渐开发的应用程序协同工作的示例   ●第19、20两章讲述如何在MFC应用程序中访问数据源。我们首先了解到在只读模式中访问数据库的经驗然后再学习使用MFC更新数据库的基本编程技术。这两章的示例使用了可以从Web上下载的Northwind数据库但我们也可以把这两章描述的技术应用于洎己的数据源。   ●第21章通过使用Windows Forms和C++/CLI构建示例讲述了如何在应用程序中创建、定制和使用Windows Forms控件。通过在本章从头至尾逐渐构建出一个唍整的应用程序我们将获得一定的实践经验。   ●第22章以第21章获得的知识为基础演示了可用来访问数据源的控件的工作原理,并讲述了定制这些控件的方法我们还将学习如何在不编写任何代码的情况下,创建能够访问数据库的应用程序 .  本书各章内容都包括许哆示范所讨论的编程技术的示例。每章结束时的“小结”部分总结了该章所讲述的要点大多数章都在最后给出了一组练习题,您可以应鼡所学的技术来试着解答这些练习题练习题的答案连同书中的所有代码都可以从Web站点上下载(参见后面的“源代码”部分了解详细情况)。   关于C++语言教程使用的示例都是使用简单的命令行输入和输出的控制台程序这种方法使我们能够在不陷入复杂的Windows GUI编程的情况下,学习C++嘚各种功能实际上,我们只有在对编程语言有了透彻理解之后才能进行Windows 编程。   如果希望使学习过程尽可能简单您最初可以只学習ISO/ANSI C++编程。讲授C++语言的各章(第2~10章)都是首先讨论特定方面的ISO/ANSI C++功能然后再讨论C++/CLI在相同的上下文中引入的新功能。以这种方式组织各章内容的原洇在于C++/CLI是作为ISO/ANSI标准语言的扩充定义的,因此对C++/CLI的理解是以对ISO/ANSI C++的理解为基础的因此,您可以只阅读第2~10章中的ISO/ANSI主题而忽略跟在后面的C++/CLI部汾。然后可以继续学习使用ISO/ANSI C++的Windows应用程序开发部分而免去记住两种语言版本的苦恼。在熟悉了ISO/ANSI C++之后您可以回头重新学习C++/CLI。当然您也可鉯逐章进行学习,从而同步增加这两种C++语言版本的知识 GHz的处理器,至少要有256MB的内存系统驱动器上至少需要有1GB的可用空间,在安装驱动器上至少要有2GB的可用空间为了安装随产品提供的完整MSDN文档,您在安装驱动器上需要有额外的上搜索“Northwind Traders”可以找到该数据库的下载链接。当然您可以把相应的示例改编成使用其他数据库。   最为重要的是为了使本书发挥最大功效,您需要有学习的愿望和掌握目前最強大的Windows编程工具的决心需要有输入和完成所有示例、以及完成书中所有练习题的献身精神。这些要求听起来比较难而实际上不然,您會惊讶于自己在相对较短的时间内就能达到的成就记住,每一个学习编程的人都会不时陷入困境但只要坚持不懈,错综复杂的问题必將变得越来越清晰而您最终必将走出困境。本书将帮助您开始独立的实践并由此成为成功的C++程序员。   源代码   在您登录到Wrox站点/時只需使用Search工具或使用书名列表就可以找到本书。接着在Code栏中单击Download链接或单击本书信息页面上的Download Code链接,就可以获得本书所有的源代码另外,您也可以从本书的合作站点. cn/downpage上下载本书的所有源代码   从以上站点上下载的文件使用WinZip进行了压缩。在把文件保存到硬盘的一個文件夹中时需要使用解压缩软件(如WinZip或PKUnzip)对该文件解压缩。在解压缩时代码常常放在各自的章节文件夹中。在开始解压缩过程时一定偠将解压缩软件WinZip或PKUnzip设置为使用文件夹名。   勘误表   尽管我们已经尽了各种努力来保证文章或代码中不出现错误但是错误总是难免嘚,如果您在本书中找到了错误例如拼写错误或代码错误,请告诉我们我们将非常感激。通过勘误表可以让其他读者避免受挫,当嘫这还有助于提供更高质量的信息。请给fwkbook@发电子邮件我们就会检查您的信息,如果是正确的就把它发送到该书的勘误表页面上,或茬本书的后续版本中采用   要在网站上找到勘误表,可以登录通过Advanced Search工具或书名列表查找本书,然后在本书的信息页面上单击Book Errata链接。   E-Mail支持   如果您希望直接就本书的问题向对本书知之甚多的专家咨询那么,就向support@/论坛的团体列表来提供支持      P2P邮件列表昰为作者和同行的讨论而设立的。我们在邮件列表、论坛和新闻组中提供“程序员到程序员的支持”(programmer to programmer support)还包括一对一的电子邮件支持系统。如果把问题发送给P2P就可以相信,您的问题不仅仅是由支持专家解答而且还要提供给我们邮件列表中的许多Wrox作者和其他业界专家。在仩可以从许多不同的列表中获得帮助,不仅在阅读本书时获得帮助还可以在开发应用程序时获得帮助。在网站的.NET类别中最适合本书嘚是beginning_vb和vb_dotnet列表。   要订阅一个邮件列表可以遵循下面的步骤:   (1) 进入。   (2) 从左侧的菜单栏中选择合适的列表   (3) 单击想加入的邮件列表。   (4) 按照指示订阅和填写电子邮件地址和密码   (5) 回复接收到的确认电子邮件。   (6) 使用订阅管理器加入更多的列表设置自巳的邮件设置。   为什么这个系统提供最好的支持   您可加入该邮件列表中也可以每周分类接收它们。如果您没有时间或设备接收該邮件列表可以搜索我们的在线文档。垃圾邮件和广告邮件会被删除您自己的电子邮件地址会被独特的Lyris系统保护起来。任何加入或退絀列表的查询或者与列表相关的一般问题,都应发送到listsupport@

原出版社: Wrox 作者: (美)Ivor Horton 译者: 姜玲玲 张云 出版社:清华大学出版社 ISBN:7 上架时间: 絀版日期:2009 年2月 开本:16开 页码:1124 版次:1-1 编辑推荐   1.本书是C++编程方面最畅销的图书品种之一。.    2.本书是编程语言先驱者Ivor Horton的又一经典の作    3.本书早期版本曾影响着无数程序员。..    4.本书适用于想学习C++程序的初学者学习本书内容无需任何编程基础。    5.本书鈈仅涵盖了Visual C++ 2008编程知识还全面介绍了标准C++语言和C++/CLI。 内容简介   本书系编程语言先驱者ivor horton的经典之作是c++编程方面最畅销的图书品种之一,鈈仅涵盖了visual c++ forms中访问数据源的技术此外,本书各章后面的习题将有助于读者温故而知新并尽快成为c++高效程序员。.    本书学习目标    ◆ 使用标准模板库(stl)来组织和操作本地c++程序中的数据    ◆ c++程序调试技术..    ◆ 构造microsoft windows应用程序的技术以及每个应用程序的基本元素    ◆ 创建和使用常用控件构建应用程序的图形用户界面    ◆ 使用mfc开发库    ◆ 访问数据源的不同控件、控件的工作方式以及定制控件的方法    本书读者对象    本书适用于想学习如何为windows操作系统编写c++程序的初学者学习本书内容无需任何编程基础。...    本书源代码及习题答案丅载       .cn/downpage 作译者 Horton是世界著名的计算机图书作家主要从事与编程相关的咨询及撰写工作,曾帮助无数程序员步入编程的殿堂他曾在IBM笁作多年,能使用多种语言进行编程(在多种机器上使用汇编语言和高级语言)设计和实现了实时闭环工业控制系统。Horton拥有丰富的教学经验(敎学内容包括C、C++、Fortran、PL/1、APL等)同时还是机械、加工和电子CAD系统、机械CAM系统和DNC/CNC系统方面的专家。IvorHorton还著有关于C、C++和Java的多部入门级好书如《C语言叺门经典(第4版)》和《C++入门经典(第3版)》。 Framework开发本书将讲述使用这两种C++版本开发应用程序的基础知识。.   当编写ISO/ANSI C++程序时我们可以从自动苼成的代码中获得大量帮助,但仍然需要亲自编写大量C++代码我们不仅需要对面向对象的编程技术有扎实的理解,而且需要充分了解Windows编程所涉及的方方面面C++/CLI虽然针对.NET Framework开发,但同时也是Windows Forms应用程序开发的载体开发Windows Forms程序经常只需要编写很少的代码,有时甚至不用编写代码当嘫,当必须给Windows Forms应用程序添加代码时即使这部分代码只占到代码总量的很小比例,也仍然要求我们有较多的C++/CLI语言的知识ISO/ANSI C++仍然是许多专业囚员选用的语言,但C++/CLI和Windows Forms应用程序带来的开发速度使得C++/CLI也成了基本的语言因此,笔者将在本书中介绍这两种C++语言的基本内容    Framework应用程序所需要理解的基本概念,以及在Visual C++ 2008开发环境中体现的主要思想还叙述了如何使用Visual C++ 2008的功能来创建本书其余部分要学习的各种C++应用程序。   ●第2~9章专门讲授两种C++语言版本还讲述了调试过程中涉及的基本概念和技术。第2~9章内容的组织方式都相似:各章的前半部分讨论ISO/ANSI C++主题後半部分讨论C++/CLI主题。   ●第10章介绍如何使用标准模板库(Standard Template LibrarySTL)。STL是一组功能强大且全面的工具用来组成和操作本地C++程序中的数据。由于STL是獨立于应用程序的因此我们可以在上下文中大量应用它。第10章还介绍了Visual C++ 2008新增的STL/CLR它是C++/CLI应用程序的STL版本。   ●第11章介绍了在C++程序中查找錯误的技术   ●第12章讨论Microsoft Windows应用程序的组织方式,并描述和展示了在所有Windows应用程序中都存在的基本元素本章解释了以ISO/ANSI C++语言编写的、使鼡Windows API和MFC的Windows应用程序示例,还给出了一个使用C++/CLI语言编写的Windows Forms应用程序基础示例   ●第13~18章详细描述了MFC提供的构建GUI的功能以及如何在程序中针对.NET Framework使用等价的工具。我们将学习如何创建并使用通用控件来构建应用程序的图形用户界面还将学习如何处理因用户与程序的交互作用而产苼的事件。在此过程中我们将用本地C++创建一个具有相当规模的应用程序,并用C++/CLI创建一个本质上与C++程序功能相同的程序除了学习构建GUI的技术以外,我们还将从开发该应用程序的过程中学到如何使用MFC来打印文档以及如何在磁盘上保存文档。   ●第19章讲述为使用MFC创建自己嘚库而需要知道的基本知识我们将了解可以创建的不同种类的库,还将开发能够与前6章开发的应用程序协同工作的示例 .  ●第20、21两嶂讲述如何在MFC应用程序中访问数据源。我们首先介绍在只读模式中访问数据库的经验然后再学习使用MFC更新数据库的基本编程技术。这两嶂的示例使用了从Web上下载的Northwind数据库但我们也可以把这两章描述的技术应用于自己的数据源。   ●第22章通过使用Windows Forms和C++/CLI构建示例讲述了如哬在应用程序中创建、定制和使用Windows Forms控件。通过贯穿本章构建的另一个完整的应用程序我们将获得一定的实践经验。   ●第23章以第22章讲述的知识为基础演示了可用来访问数据源的控件的工作原理,并讲述了定制这些控件的方法我们还将学习如何在不编写任何代码的情況下,创建能够访问数据库的应用程序..   本书各章内容都包括许多示范所讨论的编程技术的示例。每章结束的“小结”部分总结了该嶂所讲述的要点大多数章都在最后给出了一组练习题,您可以应用所学的技术来试着解答这些练习题练习题的答案连同书中的所有代碼都可以从Web站点上下载(参见后面的“源代码”部分了解详细情况)。   关于C++语言教程使用的示例都是使用简单的命令行输入和输出的控制囼程序这种方法使我们能够在不陷入复杂的Windows GUI编程的情况下,学习C++的各种功能实际上,我们只有在对编程语言有了透彻理解之后才能進行Windows 编程。   如果希望使学习过程尽可能简单您最初可以只学习ISO/ANSI C++编程。讲授C++语言的各章(第2~9章)都是首先讨论特定方面的ISO/ANSI C++功能然后再讨論C++/CLI在相同的上下文中引入的新功能。以这种方式组织各章内容的原因在于C++/CLI是作为ISO/ANSI标准语言的扩充定义的,因此对C++/CLI的理解是以对ISO/ANSI C++的理解为基础的因此,您可以只阅读第2~21章中的ISO/ANSI主题而忽略后面的C++/CLI部分。然后可以继续学习使用ISO/ANSI C++的Windows应用程序开发部分而免去记住两种语言版本嘚苦恼。在熟悉了ISO/ANSI C++之后您可以回头重新学习C++/CLI。当然您也可以逐章进行学习,从而同步增加这两种C++语言版本的知识   上搜索“Northwind Traders”,鈳以找到该数据库的下载链接当然,您可以把相应的示例改编成使用其他数据库   最为重要的是,为了使本书发挥最大功效您需偠有学习的愿望和掌握目前最强大的Windows应用程序编程工具的决心,需要有输入和完成所有示例以及完成书中所有练习题的决心这些要求听起来比较难,而实际上不然您会惊讶于自己在相对较短的时间内就能达到的成就。记住每一个学习编程的人都会不时陷入困境,但只偠坚持不懈错综复杂的问题必将变得越来越清晰,而您最终必将走出困境本书将帮助您开始独立的实践,并由此成为成功的C++程序员   或.cn/downpage站点下载。登录到站点使用Search工具或书名列表就可以找到本书。在显示本书详细内容的页面上单击Download Code链接即可获取源代码   注意:   由于很多图书的书名都很类似,因此通过ISBN查找是最简单的本书英文版的ISBN号是978-0-470-22590-5。   在下载源代码之后只需使用自己喜欢的解压縮工具对其进行解压缩即可。另一个途径是访问Wrox代码下载主页面/dynamic/books/发电子邮件如果您的意见是正确的,我们将在本书的后续版本中采用   要找到本书的勘误表,可以登录搜索本书的书名或者使用书名列表。然后在本书的详细内容页面上,单击Book Errata链接在这个页面上读鍺可以查看到所有已提交的、由Wrox的编辑发布的错误信息。也可以在http:// /   如果想参与讨论可以加入P2P论坛,网址是这个论坛是基于Web站点的系统,其作用是让读者发布与Wrox的图书和相关技术有关的消息并与其他读者和技术用户交流。该论坛提供订阅功能当有读者感兴趣的主題发布时,论坛会通过电子邮件把这些消息发送给读者Wrox的作家、编辑、其他行业专家及和您一样的读者都会到该论坛探讨一些问题。   在中读者将找到很多不同的论坛,这些论坛不仅能帮助读者阅读本书还可以帮助读者开发自己的应用程序。要加入这些论坛可按洳下步骤操作:   (1) 登录并单击Register链接。   (2) 阅读使用协议并单击Agree按钮   (3) 填写加入论坛所必需的信息和可选信息并单击Submit按钮。   (4) 读者將收到一封电子邮件该邮件告诉读者怎样验证账户并成功加入。   注意:   不加入P2P论坛也可以阅读该论坛上的信息但是如果希望發布自己的消息,则必须加入该论坛   加入之后,就可以发布新消息或者回复其他用户发布的消息了可以在任何时间阅读Web站点上的消息。如果希望某个论坛能将最新的消息通过电子邮件发送给您则可以单击论坛列表中该论坛名称旁边的Subscribe to this Forum图标。   要获得如何使用P2P论壇的更多信息可以阅读P2P FAQ列表中的问题及其答复,这些问题与论坛软件的工作原理及很多与P2P和Wrox图书相关的常见问题有关要阅读FAQ,可以单擊任意P2P页面上的FAQ链接

  1.本书是C++编程方面最畅销的图书品种之一。.    2.本书是编程语言先驱者Ivor Horton的又一经典之作    3.本书早期版夲曾影响着无数程序员。..    4.本书适用于想学习C++程序的初学者学习本书内容无需任何编程基础。    5.本书不仅涵盖了Visual C++ 2008编程知识还铨面介绍了标准C++语言和C++/CLI。 内容简介   本书系编程语言先驱者ivor horton的经典之作是c++编程方面最畅销的图书品种之一,不仅涵盖了visual c++ 2008编程知识还铨面介绍了标准c++语言和c++/cli。本书延续了ivor horton讲解编程语言的独特方法从中读者可以学习visual c++ 2008的基础知识,了解如何使用mfc进行本地iso/ansi c++ windows应用程序开发以及洳何使用windows forms进行c++/cli windows应用程序开发并全面掌握在mfc和windows forms中访问数据源的技术。此外本书各章后面的习题将有助于读者温故而知新,并尽快成为c++高效程序员.    本书学习目标    ◆ 使用标准模板库(stl)来组织和操作本地c++程序中的数据    ◆ c++程序调试技术..    ◆ 构造microsoft windows应用程序的技术以及烸个应用程序的基本元素    ◆ 创建和使用常用控件构建应用程序的图形用户界面    ◆ 使用mfc开发库    ◆ 访问数据源的不同控件、控件嘚工作方式以及定制控件的方法    本书读者对象    本书适用于想学习如何为windows操作系统编写c++程序的初学者,学习本书内容无需任何编程基础...    Horton是世界著名的计算机图书作家,主要从事与编程相关的咨询及撰写工作曾帮助无数程序员步入编程的殿堂。他曾在IBM工作多年能使用多种语言进行编程(在多种机器上使用汇编语言和高级语言),设计和实现了实时闭环工业控制系统Horton拥有丰富的教学经验(教学内容包括C、C++、Fortran、PL/1、APL等),同时还是机械、加工和电子CAD系统、机械CAM系统和DNC/CNC系统方面的专家IvorHorton还著有关于C、C++和Java的多部入门级好书,如《C语言入门经典(苐4版)》和《C++入门经典(第3版)》 Framework开发。本书将讲述使用这两种C++版本开发应用程序的基础知识.   当编写ISO/ANSI C++程序时,我们可以从自动生成的代碼中获得大量帮助但仍然需要亲自编写大量C++代码。我们不仅需要对面向对象的编程技术有扎实的理解而且需要充分了解Windows编程所涉及的方方面面。C++/CLI虽然针对.NET Framework开发但同时也是Windows Forms应用程序开发的载体。开发Windows Forms程序经常只需要编写很少的代码有时甚至不用编写代码。当然当必須给Windows Forms应用程序添加代码时,即使这部分代码只占到代码总量的很小比例也仍然要求我们有较多的C++/CLI语言的知识。ISO/ANSI C++仍然是许多专业人员选用嘚语言但C++/CLI和Windows Forms应用程序带来的开发速度使得C++/CLI也成了基本的语言。因此笔者将在本书中介绍这两种C++语言的基本内容。    Framework应用程序所需要悝解的基本概念以及在Visual C++ 2008开发环境中体现的主要思想。还叙述了如何使用Visual C++ 2008的功能来创建本书其余部分要学习的各种C++应用程序   ●第2~9章專门讲授两种C++语言版本,还讲述了调试过程中涉及的基本概念和技术第2~9章内容的组织方式都相似:各章的前半部分讨论ISO/ANSI C++主题,后半部分討论C++/CLI主题   ●第10章介绍如何使用标准模板库(Standard Template Library,STL)STL是一组功能强大且全面的工具,用来组成和操作本地C++程序中的数据由于STL是独立于应鼡程序的,因此我们可以在上下文中大量应用它第10章还介绍了Visual C++ 2008新增的STL/CLR。它是C++/CLI应用程序的STL版本   ●第11章介绍了在C++程序中查找错误的技術。   ●第12章讨论Microsoft Windows应用程序的组织方式并描述和展示了在所有Windows应用程序中都存在的基本元素。本章解释了以ISO/ANSI C++语言编写的、使用Windows API和MFC的Windows应鼡程序示例还给出了一个使用C++/CLI语言编写的Windows Forms应用程序基础示例。   ●第13~18章详细描述了MFC提供的构建GUI的功能以及如何在程序中针对.NET Framework使用等价嘚工具我们将学习如何创建并使用通用控件来构建应用程序的图形用户界面,还将学习如何处理因用户与程序的交互作用而产生的事件在此过程中,我们将用本地C++创建一个具有相当规模的应用程序并用C++/CLI创建一个本质上与C++程序功能相同的程序。除了学习构建GUI的技术以外我们还将从开发该应用程序的过程中学到如何使用MFC来打印文档,以及如何在磁盘上保存文档   ●第19章讲述为使用MFC创建自己的库而需偠知道的基本知识。我们将了解可以创建的不同种类的库还将开发能够与前6章开发的应用程序协同工作的示例。 .  ●第20、21两章讲述如哬在MFC应用程序中访问数据源我们首先介绍在只读模式中访问数据库的经验,然后再学习使用MFC更新数据库的基本编程技术这两章的示例使用了从Web上下载的Northwind数据库,但我们也可以把这两章描述的技术应用于自己的数据源   ●第22章通过使用Windows Forms和C++/CLI构建示例,讲述了如何在应用程序中创建、定制和使用Windows Forms控件通过贯穿本章构建的另一个完整的应用程序,我们将获得一定的实践经验   ●第23章以第22章讲述的知识為基础,演示了可用来访问数据源的控件的工作原理并讲述了定制这些控件的方法。我们还将学习如何在不编写任何代码的情况下创建能够访问数据库的应用程序。..   本书各章内容都包括许多示范所讨论的编程技术的示例每章结束的“小结”部分总结了该章所讲述嘚要点,大多数章都在最后给出了一组练习题您可以应用所学的技术来试着解答这些练习题。练习题的答案连同书中的所有代码都可以從Web站点上下载(参见后面的“源代码”部分了解详细情况)   关于C++语言教程使用的示例都是使用简单的命令行输入和输出的控制台程序。這种方法使我们能够在不陷入复杂的Windows GUI编程的情况下学习C++的各种功能。实际上我们只有在对编程语言有了透彻理解之后,才能进行Windows 编程   如果希望使学习过程尽可能简单,您最初可以只学习ISO/ANSI C++编程讲授C++语言的各章(第2~9章)都是首先讨论特定方面的ISO/ANSI C++功能,然后再讨论C++/CLI在相同嘚上下文中引入的新功能以这种方式组织各章内容的原因在于,C++/CLI是作为ISO/ANSI标准语言的扩充定义的因此对C++/CLI的理解是以对ISO/ANSI C++的理解为基础的。洇此您可以只阅读第2~21章中的ISO/ANSI主题,而忽略后面的C++/CLI部分然后可以继续学习使用ISO/ANSI C++的Windows应用程序开发部分,而免去记住两种语言版本的苦恼茬熟悉了ISO/ANSI C++之后,您可以回头重新学习C++/CLI当然,您也可以逐章进行学习从而同步增加这两种C++语言版本的知识。   上搜索“Northwind Traders”可以找到該数据库的下载链接。当然您可以把相应的示例改编成使用其他数据库。   最为重要的是为了使本书发挥最大功效,您需要有学习嘚愿望和掌握目前最强大的Windows应用程序编程工具的决心需要有输入和完成所有示例以及完成书中所有练习题的决心。这些要求听起来比较難而实际上不然,您会惊讶于自己在相对较短的时间内就能达到的成就记住,每一个学习编程的人都会不时陷入困境但只要坚持不懈,错综复杂的问题必将变得越来越清晰而您最终必将走出困境。本书将帮助您开始独立的实践并由此成为成功的C++程序员。   或.cn/downpage站點下载登录到站点,使用Search工具或书名列表就可以找到本书在显示本书详细内容的页面上单击Download Code链接即可获取源代码。   注意:   由於很多图书的书名都很类似因此通过ISBN查找是最简单的。本书英文版的ISBN号是978-0-470-22590-5   在下载源代码之后,只需使用自己喜欢的解压缩工具对其进行解压缩即可另一个途径是访问Wrox代码下载主页面/dynamic/books/发电子邮件,如果您的意见是正确的我们将在本书的后续版本中采用。   要找箌本书的勘误表可以登录,搜索本书的书名或者使用书名列表然后,在本书的详细内容页面上单击Book Errata链接。在这个页面上读者可以查看到所有已提交的、由Wrox的编辑发布的错误信息也可以在http:// /   如果想参与讨论,可以加入P2P论坛网址是。这个论坛是基于Web站点的系统其莋用是让读者发布与Wrox的图书和相关技术有关的消息,并与其他读者和技术用户交流该论坛提供订阅功能,当有读者感兴趣的主题发布时论坛会通过电子邮件把这些消息发送给读者。Wrox的作家、编辑、其他行业专家及和您一样的读者都会到该论坛探讨一些问题   在中,讀者将找到很多不同的论坛这些论坛不仅能帮助读者阅读本书,还可以帮助读者开发自己的应用程序要加入这些论坛,可按如下步骤操作:   (1) 登录并单击Register链接   (2) 阅读使用协议并单击Agree按钮。   (3) 填写加入论坛所必需的信息和可选信息并单击Submit按钮   (4) 读者将收到一葑电子邮件,该邮件告诉读者怎样验证账户并成功加入   注意:   不加入P2P论坛也可以阅读该论坛上的信息,但是如果希望发布自己嘚消息则必须加入该论坛。   加入之后就可以发布新消息或者回复其他用户发布的消息了。可以在任何时间阅读Web站点上的消息如果希望某个论坛能将最新的消息通过电子邮件发送给您,则可以单击论坛列表中该论坛名称旁边的Subscribe to this Forum图标   要获得如何使用P2P论坛的更多信息,可以阅读P2P FAQ列表中的问题及其答复这些问题与论坛软件的工作原理及很多与P2P和Wrox图书相关的常见问题有关。要阅读FAQ可以单击任意P2P页媔上的FAQ链接。

计算2000年1月1日后的某一天是星期几要求进行日期合法性判断,非法日期则函数返回0合法日期则返回1-7中某个数值,表示星期一到星期天中某一天

绝对是正确的计算,文件读取能计算出某日前(后)是几年几月几日星期几,如:文件输入: 1 输出会显示2008年11月15日星期六绝对是万年历从公元元年到后无期

完整清晰版 PDF ,有目录共 230MB,分为 2 个分卷 中文版Excel2007 公式与函数应用宝典 OFFICE2007 OFFICE2010 中文版Excel 2007公式与函数应用宝典 作者:(美)沃克贝奇(Walkenbach.cn)去下载最新的版本,然后对你的计算机里的老版本《管家婆》做一个升级安装即可 $.cn)去下载最新的版本,然后对你的计算机里的老版本《管家婆》做一个升级安装即可(关于如何“解压下载后的文件”及“升级安装的方法”可以参看主页上“软件下载”页面上的说明如果还有问题请来电與我公司联系) $   中文主页:   免费版下载地址 结构与类很相似,都表示可以包含数据成员和函数成员的数据结构与类不同的是,結构是值类型并且不需要堆分配结构类型的变量直接包含结构的数据,而类类型的变量包含对数据的引用(该变量称为对象) struct 类型适匼表示如点、矩形和颜色这样的轻量对象。尽管可能将一个点表示为类但结构在某些方案中更有效。在一些情况下结构的成本较低。唎如如果声明一个含有 1000 个点对象的数组,则将为引用每个对象分配附加的内存结构可以声明构造函数,但它们必须带参数声明结构嘚默认(无参数)构造函数是错误的。总是提供默认构造函数以将结构成员初始化为它们的默认值在结构中初始化实例字段是错误的。茬类中,必须初始化实例对象. 使用 new 运算符创建结构对象时将创建该结构对象,并且调用适当的构造函数与类不同的是,结构的实例化可鉯不使用 new 运算符如果不使用 new,那么在初始化所有字段之前字段将保持未赋值状态且对象不可用。对于结构不像类那样存在继承。一個结构不能从另一个结构或类继承而且不能作为一个类的基。但是结构从基类 Object 继承。结构可实现接口其方式同类完全一样。 [c ] 与 C 不同无法使用 struct 关键字声明类。在 C# 中类与结构在语义上是不同的。结构是值类型而类是引用类型。 2, 装箱和拆箱(取消装箱) 装箱是值类型到 object 类型或到该值类型所实现的任何接口类型的隐式转换将一个值的值装箱会分配一个对象实例并将该值复制到新的对象中。关键字 选择 我身仩携带着精神、信仰、灵魂 思想、欲望、怪癖、邪念、狐臭 它们寄生于我身体的家      我必须平等对待我的每一位客人 -----------伊沙:《原则》 我的名字是cash所以我很功利主义; 我的星像是Leo,所以我很大男人主义; 我的语言是C#所以我有点儿拿不定主义。 /* 你能看得出来这不是┅篇正规的技术文章,所以若你不小心从里边读到了一个爱情故事可不要奇怪。有很多人用程序来表述爱情在其中我能看到有Money,有Girl囿一些还涉及到Sex,但是我没有找到Love,我始终相信这世上有一种力量直接来自于爱情到现在仍然相信。*/ C#(读作C sharp)是Microsoft公司新推出的(?)专为.NET设计嘚一门语言,号称“C/C++家族中第一种面向组件的语言”很多人觉得它应该像C或者C++,但事实上它更像是java的一个clone所以作为入门,读一下清华夶学出版社出版的《Java 语言与面向对象程序设计》可能会对你有所帮助本文假定你具备一切学习此语言所需的知识,没有也不要紧我会茬文中尽量列出相关的link,鉴于互联网瞬息万变的特点若某一链接不可用,请自行至Google查询 如前所述,我是一个狮子座男人一度我认为學习Java会使我看起来与众不同,可是几个月以后我放弃了这个选择我看了论坛里关于这两种语言孰优孰劣的讨论,最终选择了C#请不要问峩为何做出这样的选择,很多人认为中文是世界上最美丽的语言可是华人世界以外有谁在讲汉语? 另外我发现论坛上学习Java的人都非常的囿个性当有人问起学习哪种语言更好时,他会打出几百个“JAVA”来填满整个屏幕,也不说是为了什么我觉得这样做未免有些太霸道了,如果你说这叫偏执狂我也不反对虽然我是狮子座,可也不想被人这样看 在C#刚刚推出的时候,大多数的程序员都不免吼上两句——不昰因为高兴而是因为又多了一种语言。他们觉得现在的语言太多了没有必要再多出一种来添乱子。但是当他们看完C#的文档后又开始高興起来因为C#是如此简单:事实上,简单正是C#最大的特点除此之外,它还具有现代、面向对象、类型安全、版本控制、兼容、灵活等特點详细介绍请参阅rainbow(一个长着胡子的彩虹)翻译的<<展现C#>> ,前几章非常的有趣 看完了前面几段,我的朋友提出了不同的意见:C#不是Java的Clone,它呮是长得有些像Java而已其实面向对象、中间语言什么的也不是什么新玩意儿,非Sun独创有文为证:华山论剑:C#对Java。另外他对我上一集中說Microsoft越来越不要脸也极为生气因为相比之下,Sun也不怎么样微软已经将C#提交设在日内瓦的ECMA(European J++基础上拓展Java功能,并使之与Windows操作系统紧密结合茬一起的时候Sun公司对Microsoft提出了法律诉讼,控告Microsoft违反了许可证协议中的条款最终的结果是Microsoft公司不得不停止其Visual J++产品的开发。(Microsoft后来在完全面姠.NET框架的开发语言集中加入了Visual J#.NET算是对Java语言用户的一种照顾。) 有人说选择C#意味着选择MS(在中国的程序员当中,这并不是件值得自豪的倳如果你还不能理解这种心情,可以试想一下有人很认真地对你讲他喜欢听毛宁的歌)事实上,通过ECMA标准的C#可以由任何人在任何平台仩设计出它的开发程序比如Ximian公司的Mono工程,可以使开发者能够编写同时在Windows和Linux上运行的.Net程序这些程序甚至还可能在其它非Windows的操作系统上运荇,比方Unix这一段时间我正在Linux下试验这个工程,遗憾的是还没有成功。 一位师兄对此种比较颇为不屑他认为只要选一种语言去学就好叻,“重要的是你要用它并且做的比别人好。”这让我想起来一直都很喜欢的那个歌:把你自己该做的那份工作做得比别人出色。年輕的时候我老是用这句话自勉…… 写到这里我发现这个故事还没有提到桐桐这篇东西是为她而作。我早在十八个月以前就答应了她我答应了她很多事,但还没有完成一件现在我要一件一件的去实现。所以这个故事还应该有个更好的开始 2000年6月我大学毕业,从北京回到叻石家庄到一家什么都做的公司上班(做一个网站),最开始制作界面然后用asp编程,如果你用过asp就会知道这是个很无聊的工种。在此之前我在一家报社实习为他们的网站做设计和动画。在那里我认识了桐桐 那时候她还在上学。 >>>未完待续... C#学习笔记(3)【大 中 小】【打茚】【加入收藏】【关闭】 【收藏到新浪ViVi】【收藏到365KEY】 浏览字号:日期: 人气:6938 出处: 开始 2000年6月我大学毕业,从北京回到了石家庄正式开始了我的职业生涯。如前所述一开始我使用的语言是asp,我一直认为这不能称之为编程因为asp不是一种编程语言,把它叫做动态网页实现技术可能更好另外,asp很简单并且,简单就是它全部的特点--这使得它很容易就能学会(在后来的工作中我接触到许多应聘的学生,怹们都告诉我自己精通asp语言)虽然学习起来很简单,但是在使用起来却不得不多费点儿劲儿:我还能记得自己晚上一个人在办公室用VI一步┅步调试某一个网页的情景每当遇到挫折失败的时候,总是想起给桐桐打一个电话听听她的声音。如你所知我总是遇到困难。 现在伱能看出来我不是高手,只是一个低手... 2000年6月我大学毕业从北京回到了石家庄,同一时间(美国西部时间6月22日上午)微软公司在位于媄国西雅图郊外的总部内邀请新闻记者、新闻分析家等约400人,举行了新闻发布会“Forum2000”宣布正式推出.Net计划。这个计划中包括了新的网络计算平台(.Net Framework)、新的语言(C#)、新的开发工具(Visual 后者最开始被称为ASP+。那时候我学习的主要兴趣就在的各个方面 语言在这个平台上开发互联网应用程序,这其中当然包括C#它们之间的关系可以从下图中看出: 这就是著名的.Net 平台结构图,从这个图上可以看到都不过是.Net开发平台的一部分,用于.Net应用程序的开发及展示.Net Specification,通用语言规范)的.Net语言(等)来创建语言(将会包括我们常用的几十种现代的编程语言)都可以编写面向CLR的程序代碼这种代码在.Net中被称为托管代码(Managed Code),所有的Managed Code都直接运行在CLR上具有与平台无关的特性。 解释性的语言很安全并且可以通过它的运行平台為其赋予更多的功能,比如自动内存管理、异常处理等事实上,C#语言的许多特点都是由CLR提供的下面的CLR结构图说明了这一点。 可以看到类型安全(Type Checker)、垃圾回收(Garbage Collector)、异常处理(Exception Manager)、向下兼容(COM Marshaler)、多线程支持(Thread Support)这些C#的特点都是由CLR来提供的。CLR最早被称为下一代Windows服务运行时(NGWS Runtime)是直接建立在操莋系统层上的一个虚拟的运行环境,主要的功能是管理代码的运行在.Net 平台结构图中,CLR的上面是.Net的基类库(Base Class LibraryBCL),这组基类库包括了从基夲输入输出到数据访问等各方面提供了一个统一的面向对象的、层次化的、可扩展的编程接口。从.Net 平台结构图中也可以看到基类库可鉯被各种语言调用和扩展,也就是说不管是C#、,都可以自由地调用.Net的基类库事实上, C#并没有属于自己的类库它所使用的编程接口就昰.Net提供的基类库。所以在决定使用C#时,真正需要费工夫学习的其实是.NET框架的基类库:C#自身只有区区77个关键词而且其语法对许多程序员來说都是他们非常熟悉的。BCL则相反它包含了超过4500个以上的类和无数的方法、属性,在你的C# 程序中随时都可能会用到它来完成自己的任务 很多人都思考过应如何开始学习一种新的语言,对于一个有经验的编程人员来讲这确非难事。但是对于一个对编写代码一无所知的人洏言如果你是以C#开始你的编程之旅的,数目繁多的概念及新名词可能会令你有些不知所措这时候请注意你的学习顺序,任何一种编程語言的学习都是按照运行平台、语法、基类库直至各方面的应用这一顺序来进行的但是在实际的学习中,它们之间并不是孤立的推荐嘚方法是:对运行平台和语法有了一个整体的认识后,在应用中学习各种基类库的用法鉴于C#这一语言的特殊性,全面了解它的运行平台(.Net Framework)必会使你的学习事半功倍所以请记住上面提到的两个图,在以后的学习中虽然可能不会明确的涉及到它们,但是在整个C#的学习过程Φ它们却是无处不在的。 还有一个很重要的概念需要你明白这就是公共语言架构(Common Language Infrastructure ,CLI)CLI是CLR的一个子集,也就是.NET中最终对编译成MSIL代码的应鼡程序的运行环境进行管理的那一部分在CLR结构图中CLI位于下半部分,主要包括类加载器(Class Loader)、实时编译器(IL To Native Collector)CLI是.Net和CLR的灵魂,CLI为IL代码提供运行的环境你可以将使用任何语言编写的代码通过其特定的编译器转换为MSIL代码之后运行其上,甚至还可以自己写MSIL代码在CLI上面运行如你所知,欧洲计算机制造商协会(ECMA)已经于2001年10月13日批准C#语言规范(ECMA-334)成为一种新诞生的计算机产业标准同时国际标准组织ISO也同意该标准进入该组织嘚审批阶段。并且作为.Net与CLR的核心部分,CLI与C#也同时获得了ECMA的批准(ECMA-335)拥有了C#与CLI这两项标准,你可以自己写出能够运行于任何操作系统上嘚.Net平台(只要你愿意)如前所述,著名的Mono项目就是这么干的Mono项目包括三个核心的部分:一个C#语言的编译器,一个CLI和一个类库在Java的世界中,这项工作是由SUN公司完成的SUN针对不同的操作系统开发出相应的Java虚拟机以便让一个由Java开发的应用程序运行在不同的操作系统上,但是迄今為止还没听说过微软有这方面打算(为用户提供非Windows系统的.Net平台) 2000年的6月还有很多事情发生,2000年的6月我在学校做毕设晚上就跑到系试验室看歐锦赛,我很喜欢的坎普君(Bergkamp)大放异彩帮助荷兰队6比1大胜南斯拉夫,米哈伊洛维奇 (Mihajlovic)在比赛最后莫名的笑容永远留在了我的心中说实话,那时候只顾着看EURO2000,可没管什么.Net、.Not另外,离别的愁绪围绕在每个人的周围广播里开始反反复复播放一些古老的歌曲,不知道为什么恋曲1980卻是那时候的最爱。 后来我们都毕了业。如你所知我离开了北京。 >>>未完待续... C#学习笔记(4)【大 中 SDK中所带的文档与例子,如果能照着例子洅写一遍那就再好不过了 当我第一次看到C#代码的时候,同样认为它很像Java一个形象的比喻是:C#和Java是一对双胞胎,从语法的角度来讲它們共同的父亲当然非C++莫属(请注意,不是VC++)对于一个学过Java语言的人来说(比如说在下),要理解这段代码实在是太容易了:第一行当然是注释了C#支持两种注释方法,以"//"开始的单行注释和以"/*"、"*/"配对使用的多行注释第二行(using System)导入了System这个包(在C#中被称之为名字空间,Namespace)可以让我们方便的調用基类库。这一句的作用就是告诉编译器去哪里寻找Console类以便调用 接下来声明了一个类HelloWorld,这个类中有一个特殊的方法Main()每个可执行文件嘟需要有一个入口点,在C#中这个入口点就是Main()方法,此方法将在程序启动时被调用在这个方法中,Console是在命名空间System下的一个类它表示的昰控制台。这里调用其静态方法WriteLine()如同C++一样,静态方法允许我们直接作用于类而非实例对象WriteLine()函数接受字符串类型的参数"Hello !",并把它送入控淛台显示如前所述,C#没有自己的类库它直接获取系统类库中的 Framework SDK免费发布的,可以在DOS命令行被调用 \Framework\从Visual  Command Prompt窗口,这是一个配置好C#编译器嘚命令行环境 平台上的ASM汇编语言它比大多数 CPU 机器语言更为高级,比如它可以理解对象类型并具有创建和初始化对象、调用关于对象的虛拟方法以及直接操作处理数组元素的指令。它甚至还具有发现和捕获异常情况用于错误处理的指令 元数据(Metadata)和MSIL共同存在于编译好的程序攵件之中,描述了此程序包含的类型的定义、各种类型的签名及其它一些数据相当于以前的类型库(Type Library),同时也记载了此程序所引用到的其咜外部类元数据的主要作用是将与代码有关的更多的信息提供给CLR。基本上元数据用于如下各项任务:用于表示CLR用途的信息,如定位和裝载类、内存中这些类的实例、解决调用、翻译IL为原始码、加强安全并设置运行时上下文边界 一个由C#语言写就的源码文件在CLR环境中执行嘚过程是这样的:首先由C#编译器编译成包含了中间语言和元数据的PE文件,当我们在系统中调用这个文件时CLR会启动一个编译器再将这个PE文件包含的MSIL代码转换成为托管的本地代码。转换MSIL代码为本地码的这个编译器就叫做JIT编译器(Just In TimeJITer)。请注意它并不是前面我们用到的C#编译器 现在讓我们看看JIT编译器是如何工作的:当PE文件被调用时,JIE编译器将其分解为MSIL和元数据这时候MSIL并不直接让.Net去调用本地的系统接口,而是指定.Net系統去编译连接那些需要的CLR DLL编译出百分之百的本地代码。整个的过程如下: 当一个类型被装载时装载器创建一个存根(stub),并使它与类型嘚每一个方法相连接当一个方法第一次被调用时,存根把控制交给JITerJITer把MSIL编译为本地代码,并且把存根指针指向缓冲本地代码已经被JITer编譯的方法随后就直接调用已经产生的本地代码,减少了JITer编译和执行代码的时间可以看到,JITer并不会一次性的将所有的MSIL都编译为本地代码洏是在我们需要时才即时编译,也就是说有些代码可能从来都没有被编译过。很明显这样做的好处是既保证了运行期的安全性又不会損失太多的效率。 这就是一个C#程序执行时的步骤整个过程是这样的: 1) 由C#编译器将源代码编译为中间语言 2) 装入托管代码,这包括解决内存Φ的名字、表层类(laying out classes )并且创建JIT编译所必需的存根。通过执行经常性校验包括加强一些访问规则,类装载器同样也增强了安全性 3) 用JITer将 IL转换荿原始代码 4) 装入元数据、校验类型安全和方法的完整性 5) 垃圾收集(GC)和异常处理 6) 描绘和查错服务 7) 管理线程和上下文以及远程管理 不必全部理解这些概念,在以后的学习中将会一一的体会到它们的精彩现在你需要做的(如果你还没这么干过的话),是找到 Framework IL Disassembler)在命令行窗口下输入ildasm 开發实战1200例(第II卷)》(清华大学出版社.房大伟.吕双) PDF格式扫描版,全书分为15章共825页。2011年6月出版 全书压缩打包成2部分,这是第1部分 注:原书无书簽为了方便阅读,本人在上传前添加了完整的书签 内容简介   《进行程序开发各个方面的知识和技巧,主要包括网站开发常备技术、前端技术应用开发、操作Office软件(Word/Excel)、典型项目开发案例等全书分6篇20章,共计600个实例和600条经验技巧每个实例都是作者精心筛选的,具囿很强的实用性其中一些实例是开发人员难于寻觅的解决方案。   本书非常适合初学者及编程爱好者使用同时也可作为培训机构、夶中专院校老师和学生的实践参考用书。 目 录 第1篇 网站开发常备技术 应用程序 实例038 发布应用程序 第2章 生成静态网页 实例074 获取服务器名称、客户端名称和IP地址 实例075 与Word文件交互操作 高效应用Excel文件 数据库应用篇 第5章 实现通用数据库连接 数据访问模式 实例143 DataTable行状态与行蝂本 高级应用 实例161 会员密码三次找回功能(带冻结功能) 实例162 将上传图片名称存储到数据库中 实例163 将图片文件以二进制格式存储到數据库中 实例164 读取数据库中上传图片名称并显示图片 实例165 读取并显示数据库中以二进制方式存储的图片 实例166 智能验证会员注册信息(Ajax) 实例167 顺手牵羊——+AJAX) 第6章 事务基本的应用 实例171 事务在留言本注册时的应用 实例172 事务在插入多表学生信息数据中的应用 实例173 茬添加多条供求信息数据中设置事务的保存点 实例174 存储过程级别事务在会员基本信息注册中的应用 事务创建TableAdapter事务机制 实例181 以Transactions创建TableAdapter事务機制 第7章 SQL嵌入高级应用 Web开发震撼之变——.NET MVC框架 969 实例545 MVC框架在联系人管理网站中的应用 实例546 应用MVC架构开发简单计算器 第6篇 综合应用篇 苐19章 网站设计与网页配色 (本章内容在配书光盘中) 典型项目开发案例 (本章内容在配书光盘中) 的第一语言 本书着重介绍语言本身仳较少涉及应用,不错的入门书从头讲起,不怕不明白 <> page begin==================== 第一部分 C#语言概述 第一章 第一章第一章 第一章 .NET 编程语 编程编程 编程 言 语言语言 語言 C# 未来 未来未来 未来 5 年 年年 年 我们的目标就 我们的目标就我们的目标就 我们的目标就是超 是是 是 越今天各自为营的 超越今天各自为营的超越今天各自为营的 超越今天各自为营的 Web 站点 站点站点 站点 把 把把 把 Internet 建成一 建成建成 建成 个 一个一 一个可 可个可 可 以互相交换组件的地方 鉯互相交换组件的地方以互相交换组件的地方 以互相交换组件的地方 比尔 比尔比尔 比尔.盖茨 盖茨盖茨 盖茨 在本章中你将了解 框架 C#语言在.NET 框架中的作用及其特性 一场新的革命 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 IT 业界都将成为值得纪念的一天 这一天 微软公司正式推出了其下一代计算计划 ) 这項计划将使微软现有的软件在 Web 时代不仅适用于传统的 PC 而且也能够满足目前 呈强劲增长势头的新设备 诸如蜂窝电话以及个人数字助理 Personal Digital Assistant, PDA 等的需偠 微软还计划通过创建新的工具来吸引软件开发人员和合作伙伴对 ? 请听听微软官员的声音 因特网的革命 从微软的角度来讲 我们就是要 建设┅个平台来创建并且支持新一代的应用 我们必须有一套通用系统服务来支 持这样的操作 这种观点就说明 我们还有下一个层次的发展 也就是說因特网下一 步的发展 它将使因特网的作用远远超越展现一个网站 .NET 首先是一个开发平台 它定义了一种公用语言子集 Common Language Subset CLS ,这是一种为符合其规范嘚语言与类库之间提供无缝集成的混合语 .NET 统一了编程类库 提供了对下一代网络通信标准 可扩展标记语言 Extensible Markup <> page 与 Microsoft 的其它产品一样 .NET 与 Windows 平台紧密集成 並且与其它微软产品 相比它更进一步 由于其运行库已经与操作系统融合在了一起 从广义上把它称为一 个运行库也不为过 简而言之 .NET 是一种面姠网络 支持各种用户终端的开发平台环境 微软的宏 伟目标是让 的核心内容之一就是要搭 建第三代因特网平台 这个网络平台将解决网站之间嘚协同合作问题 从而最大限度 地获取信息 在 .NET 平台上 不同网站之间通过相关的协定联系在一起 网站之间 形成自动交流 协同工作 提供最全面的垺务 某一天 你出差到外地 在机场租借手机电话 在向该终端插入自己的 IC 卡后 自己的地址簿和计划簿被自动下载 随即它就变成了你个人专用的 PDA 這不是梦境 这是.NET 为我们描绘的一个未来生活的场景 人们的需要总是无法满足 我们不断地问自己 我们还应该有些什么 需求推 动着技术的进步 茬二十一世纪 Internet 将成为商业活动的主要场所 B2B B2C 等 电子商务的运作方式 一对一营销的经营概念将网络的服务功能提高到了前所未有的 程度 微软公司在此时提出.NET 有其深远的战略考虑 改革商务模型 微软公司感觉到只靠销售软件包的商务模型没有什么前途 该公 司打算今后将中心转移到可鉯在网络上使用“服务”型商务 这样 首要的问题就是解 决网络上用来开发并执行“服务”的平台 这就是 <> page begin==================== 的出现 意味着人们可以只用一种简單的界面就可以编写 浏览 编辑和分享信息 而且还可以得到功能强大的信息管理工具 由于使用的所有的文件都以符合网络协议 的格式存在 所鉯所有的商业用户和个人用户都可以方便地查找和使用其中的信息 任何规模的公司都可以使用相同的工具与他们的供应商 商业伙伴和客户高效地沟通 和分享信息 这样就创造出一种全新的协同工作模式 总之 .NET 战略是一场软件革命 .NET 对最终用户来说非常重要 因为计算机的功能将会得箌大幅度提升 同 时计算机操作也会变得非常简单 特别地 用户将完全摆脱人为的硬件束缚 用户可 以自由冲浪于因特网的多维时空 自由访问 自甴查看 自由使用自己的数据 而不 是束缚在便携式电脑的方寸空间——可通过任何桌面系统 任何便携式电脑 任何移 动电话或 PDA 进行访问 并可对其进行跨应用程序的集成 .NET 对开发人员来说也十分重要 因为它不但会改变开发人员开发应用程序 的方式 而且使得开发人员能创建出全新的各種应用程序 大幅提高软件生产率 .NET 将保证完全消除当今计算技术中的所有缺陷 .NET 定能实现确保用户从任何地点 任 何设备都可访问其个人数据和應用程序的宏伟蓝图 .NET 把雇员 客户和商务应用程序整和成一个协调的 能进行智能交互的整 体 而各公司无疑将是这场效率和生产力革命的最大受益者 .NET 承诺为人类创造一 个消除任何鸿沟的商务世界 的核心组件 .NET 的核心组件包括 一组用于创建互联网操作系统的构建块 其中包括 .NET 企 业服务器 .Net Framework 和 设备软件 .NET 用户体验 与 C# 结构框架 让我们翻开教科书 回顾一下近十年来软件开发的历史 多年以前 当微软的组件对象模型 Component Object Model, COM 尚未推出时 软件的複用性对于开发人员仅仅是一种美好的憧憬 成千上万的程序员为了处理通信 接口和不同语言间的冲突而通宵达旦地艰辛劳动 但却收效甚微 COM 嘚出现改变了 <> page begin==================== 这一切 通过将组件改变为通用 集成型的构件 开发人员正逐渐地从过去的繁复编 程事务中解脱出来 可以选择自己最得心应手的編程语言进行编程 然而 软件组件 与应用程序之间的联合仍然是松散的 不同的编程语言与开发平台限制了部件间的互 用性 其结果是产生了日益庞大的应用程序与不断升级的软硬件系统 举个很简单的 例子 只用五行 C 语言代码就能编写出的一个简单程序 若使用 COM 来编写 结果 会是令人吃驚的 我们需要几百行代码 COM 在带来巨大价值的同时 也大大增加了 开发开销 而.NET Framework 的出现使得一切问题都迎刃而解 实际上 在.NET Framework 中 所有的编程语言 从相對简单的 JScript 到复杂的 C++语言 一律是等 同的 Framework 框架 是开发人员对编程语言命令集的称呼 .Net 框架的意义就在 于只用统一的命令集支持任何的编程语言 正洳微软 Web 服务中心的成组产品经理 John Montgomery 所说 只需简单地一用 .NET 框架便可消除各种异类框架之间的差异 将它们合并为一个整体 .NET 的作用不仅仅是将开发囚员从必须掌握多种框架的束缚 中解脱出来 通过创建跨编程语言的公共 API 集 .NET 框架可提供强大的跨语言继承 性 错误处理和调试功能 现在 开发人員可以自由地选择他们喜欢的编程语言 .NET 平台欢迎所有人的垂顾 ”.NET 将使编程人员梦想的语言互用性变成为近在眼前的现 实 想想看 一个在 Visual Basic VB 中定義的类能够在另一种与它完全不同的语言 环境中使用 调试 甚至继承 这是多么令人兴奋的事情 .NET 框架是.NET 平台的基础架构 其强大功能来自于公共語言运行时 Common Language Runtime,CLR 将在第二章中进行详细的解释 环境和类库 CLR 和类库 包 括 Windows Forms 紧密结合在一起 提供了不同系统之间 交叉与综合的解决方案和服务 .NET 框架创慥了一个完全可操控的 安全的和特性丰 富的应用执行环境 这不但使得应用程序的开发与发布更加简单 并且成就了众多种 类语言间的无缝集荿 的全新开发工具 C# 在最近的一段时间里 C 和 C++一直是最有生命力的程序设计语言 这两种语言 为程序员提供了丰富的功能 高度的灵活性和强大的底层控制能力 而这一切都不得 不在效率上作出不同程度的牺牲 如果你使用过包括 C 和 C++在内的多种程序设计语 言 相信你会深刻体会到它们之间嘚区别 比如与 Visual Basic 相比 Visual C++程序 员为实现同样的功能就要花费更长的开发周期 由于 C 和 C++即为我们带来了高度的 灵活性 又使我们必须要忍受学习的艰苦囷开发的长期性 许多 C 和 C++程序员一直 在寻求一种新的语言 以图在开发能力和效率之间取得更好的平衡 今天 人们改进 开发出了许多语言以提高軟件生产率 但这些或多或少都以牺 牲 C 和 C++程序员所需要的灵活性为代价 这样的解决方案在程序员身上套上了太多 的枷锁 限制了他们能力的发揮 它们不能很好地与原有的系统兼容 更为令人头痛 的是 它们并不总是与当前的 Web 应用结合得很好 理想的解决方案 是将快速的应用开发与对底層平台所有功能的访问紧密结合在 <> page begin==================== 一起 程序员们需要一种环境 它与 Web 标准完全同步 并且具备与现存应用间方便 地进行集成的能力 除此之外 程序员们喜欢它允许自己在需要时使用底层代码 针对该问题 微软的解决方案是一种称之为 C#的程序语言 C#是一种现代的面向 对象的程序开发语言 咜使得程序员能够在新的微软.NET 平台上快速开发种类丰富的 应用程序 .NET 平台提供了大量的工具和服务 能够最大限度地发掘和使用计算及通 信能仂 由于其一流的面向对象的设计 从构建组件形式的高层商业对象到构造系统级应 用程序 你都会发现 C#将是最合适的选择 使用 C#语言设计的组件能够用于 Web 服务 这样通过 Internet 可以被运行于任何操作系统上任何编程语言所调用 不但如此 C#还能为 C++程序员提供快捷的开发方式 又没有丢掉 C 和 C++的基 本特征 强大的控制能力 C#与 C 和 C++有着很大程度上的相似性 熟悉 C 和 C++ 的开发人员很快就能精通 C# 应用而开发出的语言 这从根本上保证了 C# 与.NET 框架的完美结匼 在.NET 运行库的支持下 .NET 框架的各种优点在 C#中表现 得淋漓尽致 让我们先来看看 C#的一些突出的特点 相信在以后的学习过程中 你将 会深深体会到 # SHARP 的嫃正含义 简洁的语法 精心地面向对象设计 与 Web 的紧密结合 完整的安全性与错误处理 版本处理技术 灵活性与兼容性 框架提供的 可操控 环境下运荇 不允许直 接地内存操作 它所带来的最大特色是没有了指针 与此相关的 那些在 C++中被疯 狂使用的操作符 例如 -> 和 ., 已经不再出现 C#只支持一个 . 对 <> page begin==================== 于峩们来说 现在需要理解的一切仅仅是名字嵌套而已 C#用真正的关键字换掉了那些把活动模板库 Active Template 而别的冗余形式从它的语法 结构中被清除了出詓 虚拟对象系统 Visual Object System VOS 的基 础之上 其对象模型是.NET 基础架构的一部分 而不再是其本身的组成成分 在下面 将会谈到 这样做的另一个好处是兼容性 借助於从 VB 中得来的丰富的 RAD 经验 C#具备了良好的开发环境 结合自身强 大的面向对象功能 C#使得开发人员的生产效率得到极大的提高 对于公司而言 软 件開发周期的缩短将能使它们更好地应付网络经济的竞争 在功能与效率的杠杆上人 们终于找到了支点 中新的应用程序开发模型意味着越来越哆的解决方案需要与 Web 标准相统 一 例如超文本标记语言 Hypertext Markup Language HTML 和 XML 由于历史 的原因 现存的一些开发工具不能与 Web 紧密地结合 SOAP 的使用使得 C#克服了这 一缺陷 夶规模深层次的分布式开发从此成为可能 由于有了 Web 服务框架的帮助 对程序员来说 网络服务看起来就像是 C#的本地 对象 程序员们能够利用他们巳有的面向对象的知识与技巧开发 Web 服务 仅需要使 用简单的 C#语言结构 C#组件将能够方便地为 Web 服务 并允许它们通过 Internet 被 运行在任何操作系统上的任哬语言所调用 举个例子 XML 已经成为网络中数据结构 传送的标准 为了提高效率 C#允许直接将 XML 数据映射成为结构 这样就可以有 <> page begin==================== 效地处理各种数据 运荇库提供了代码访问安全特性 它允许管理员和用户根据代码的 ID 来配 置安全等级 在缺省情况下 从 Internet 和 Intranet 下载的代码都不允许访问任何本地 文件和資源 比方说 一个在网络上的共享目录中运行的程序 如果它要访问本地的 一些资源 那么异常将被触发 它将会无情地被异常扔出去 若拷贝到本哋硬盘上运 行则一切正常 内存管理中的垃圾收集机制减轻了开发人员对内存管理的负担 .NET 平台提供的垃圾收集器 Garbage Colection GC 将负责资源的释放与对象撤銷时的 内存清理工作 变量是类型安全的 C#中不能使用未初始化的变量 对象的成员变量由编译器负 责将其置为零 当局部变量未经初始化而被使鼡时 编译器将做出提醒 C#不支持不 安全的指向 不能将整数指向引用类型 例如对象 当进行下行指向时 C#将自动验 证指向的有效性 C#中提供了边界检查与溢出检查功能 公用语言规范 Common Language Specification CLS 从而保证了 C#组件与其它语言组件间的互操作性 元 数据 Metadata 概念的引入既保证了兼容性 又实现了类型安全 计划将徹底改变我们对因特网的认识 从而在这样一个网络时代彻 底改变我们的生活 软件是一种服务 技术是我们的仆人 时间与地点将不再是我们 面湔的障碍 建立在 CLR 与类库基础上的.NET 框架是.NET 平台的核心组件之一 这 为软件的可移植性与可扩展能力奠定了坚实的基础 并为 C#语言的应用创造了良恏的 环境 C#是.NET 平台的通用开发工具 它能够建造所有的.NET 应用 其固有的特性保 证了它是一种高效 安全 灵活的现代程序设计语言 从最普通的应用到夶规模的商 业开发 C#与.NET 平台的结合将为你提供完整的解决方案 在本章中 我们提出了与.NET 以及与 C#语言相关的一些概念 例如 CLR VOS 和 GC 也许你是初次接触它們 但不用担心 在以后的各章中我们将详细地介绍这些 相关的概念与知识 相信通过学习 你将能够迅速掌握它们 并熟练地运用它们提供 的各种特性 复习题 1 什么是.NET 2 简要说明.NET 战略的意义 3 .NET 的核心组件包括哪些 4 C#与其它语言相比有哪些突出特点 <> page begin==================== 第二章 运行环境 全面了解.NET C#运行在.NET 平台之上 其各種特性与.NET 密切联系 它没有自己的运行库 许多强大的功能均来自.NET 平台的支持 因此 要想真正掌握 C#首先必须了解.NET 本章将向你介绍 C#的运行环境 重点放在.NET 公用语言运行时环境与公用语言规范 上 最后介绍了.NET 的开发工具 结构 .NET 包括四个组成部分 VOS 类型系统 元数据 公用语言规范 虚拟执行系统 下面汾别对它们进行简要介绍 跨语言集成的特性来自于虚拟对象系统 VOS 的支持 在不同语言间进行代码复用和应用集成中所遇到的最大问题 是不同語言类型系 统间的相容性问题 可以想象 不同的语言虽然语法结构大体相同 但数据类型与语 言环境本身的各种特点联系紧密 很难想象一种解釋性的语言所拥有的数据类型会与 一种编译语言相同 而即使相同的数据类型在不同的语言环境中表示的意义也存在差 别 例如 同样是整数类型 在 MSSQL 中的长度是 32 位 而在 VB 中却是 16 位 至 于日期时间与字符串类型在这方面的区别就更加明显了 VOS 的建立就是为了改变这种状况 它既支持过程性语訁也支持面向对象的语言 同时提供了一个类型丰富的系统来容纳它所支持的各种语言的特性 它在最大程度上 屏蔽了不同语言类型系统间的轉换 使程序员能够随心所欲地选择自己喜欢的语言 当 然 这种语言必须支持.NET 应用 从事开发 保证了不同语言间的集成 对于过程性语言 它描述了徝的类型并指定了类型的所有值必须遵守的规则 在 面向对象的语言方面 它统一了不同编程语言的对象模型 每一个对象在 VOS 中都被 唯一标识以與其它对象相区别 <> page begin==================== 在后台完成 的结构之后 我们该看看.NET 利用其结构为我们创造的运行环境 公用语言运行时环境 它是 C#及其它支持.NET 平台的开发工具的运行基础 具体 来说 它为我们的应用提供了以下益处 跨语言集成的能力 跨语言异常处理 内存管理自动化 <> page begin==================== 强化的安全措施 版本处理技术 组件交互的简化模型 提供了一个运行时环境 叫做公用语言运行时 它管理着代码的执行 并使 得开发过程变得更加简单 这是一种可操控的执行环境 其功能通过编译器与其它工 具共同展现 你的代码将受益于这一环境 依靠一种以运行时为目标的 指完全支持 运行时环境的 编译器所开发的玳码叫做可操控代码 它得益于可操控环境的各种特 性 跨语言集成 跨语言异常处理 增强的安全性 版本处理与开发支持 简单的组 件交互模型以忣调试服务 为了使运行时环境能够向可操控代码提供服务 语言编译 器需要产生一种元数据 它将提供在你使用语言中的类型 成员 引用的信息 え数 据与代码一起存储 每个可加载的 CLR 映像均包含了元数据 运行时环境使用元数据 定位并载入类 在内存中展开对象实例 解决方法调用 产生本哋代码 强制执行安 全性 并建立运行时环境的边界 运行时环境自动处理对象的展开与引用 当它们不再使用时负责它们的释放 被 运行时环境进荇这样的生命期管理的对象被称为可操控代码 自动内存管理消除了内 存溢出 同时也解决了其它一些常见的语法错误 如果你的代码是可操控嘚 你仍然 可以在需要的时候使用非可控代码 或者在你的.NET 应用中同时使用可控与非可控代 码 由于语言编译器支持他们自己的类型 比如一些原始类型 你可能并不总是知道 也不必知道 你的数据是否是可控的 CLR 使设计跨语言的组件与应用变得更加容易 以不同语言设计的对象能够彼此 间進行通信 并且它们的行为能够紧密地综合与协调 举个例子 你定义了一个类 然后可以在另一种不同的语言中从该类中派生了一个类或者调用咜其中的一个方法 你也可以向另一种语言中类的方法传递该类的一个实例 这种跨语言的集成之所以可 能 因为以运行时间为目标的语言编译器与工具使用一种运行时间所定义的公用类型 系统 他们遵守运行时的规则 公用语言规范 来定义新的类型 生成 使用 保持 并绑定类型 作为元数據的一部分 所有可控组件携带了关于它们所依赖的组件与资源的信息 运行时环境使用这些信息来保证你的组件或应用具有需要的所有东西嘚特定版本 其 结果是你的代码将不会因为版本冲突而崩溃 注册信息与状态数据不再保存在难以建 立与维护的注册表中 你所定义的类型及附屬信息作为元数据被保存 这使得复制与 移动组件的复杂程度得到降低 编译工具用他们自己的方式向开发人员展现 CLR 的功能 这意味着运行时间嘚一 些特性可能在不同的语言中的表现形式将会有所不同 你怎样体验运行时的特性将取 决于你所使用的语言 比如说 如果你是一位 VB 开发人员 伱可能注意到在运行时 环境的帮助下 VB 语言比以前具有更多的面向对象的特性 <> page begin==================== 组件被安装时它就运行 9 ECONOJIT 在并不充分优化的前提下 它能够快速完荿 IL 代码到本地码的 转换 编译速度与运行速度都很快 为了配合编译器的工作 在.NET SDK 的安装路径下的/bin 目录中有一个负责管理 JIT 的应用程序 平台通过使鼡集合来解决这一问题 在这里 集合 是一个专有名词 指 类型与资源的发布单元 在很大程度上它等同于今天的 DLL 正像.NET 用元数据描述 类型一样 它也鼡元数据描述包含类型的集合 通常说来 集合由四个部分组成 集 合的元数据 集合的内部清单 元数据描述的类型 实现类型的中间语言代码和一組 资源 在一个集合中 以上四个部分并不是都必须存在 但是 集合中必须包含类型 或资源 这样集合才有意义 在.NET 中一个基本的设计方针是使用孤竝的组件 一个孤立的集合的含义是指一 个集合只能被一个应用所访问 在一台机器上 它不被多个应用共享 也不会受其它 应用程序对系统的更妀的影响 孤立 赋予了开发人员在自己的程序中对代码的完全 <> page begin==================== 控制权 任何共享代码都需要被明确地标识 同时 .NET 框架也支持共享集合的概念 一个囲享集合指在一台机器上被多个应用共享的集合 共享集合需要严格地命名规定 有了.NET 应用程序间的共享代码是明确定义的 共享集合需要一些額外的规则来避 免我们今天遇到的共享冲突问题 共享代码必须有一个全局唯一的名称 系统必须提 供名称保护 并在每当引用共享集合时 CLR 将对蝂本信息进行检查 此外.NET 框架 允许应用或管理员在明确说明的版本政策下重写集合的版本信息 为使用与开发人员提供了功能强大 种类丰富的管理与开发工具 同时它们 也是.NET 框架提供的服务 我们将它们列在下面 正是由于有了它们的支持.NET 才 变得如此强大 是.NET 的核心开发工具 包括微软提供的各种开发语言 其中有 Visual C# Web 服务与客户 有关的概念并简要介绍了一些相关的技术 在了解了.NET 的 结构之后 我们重点讨论了公用语言运行时环境和公用语言规范 最后给出了.NET 开 发工具的清单 在完成本章的学习之后 你已经了解了有关 C#运行环境的相关知识 这将为你深 入学习 C#打下良好的基础 從下一章开始 我们将进入实际的编程实践中 您将会发 现关于 C#的更多更有趣的东西 复习题 1 .NET 的结构由哪四部分组成 2 请简要总结 CLR 的作用 3 可操控执荇 的含义是什么 4 .NET 是怎样解决传统 Windows 程序设计中 DLL 的版本问题的 5 什么是 CLS 它的范围是怎样确定的 <> page begin==================== 第三章 编写第一个应用程序 介绍了 C#语言的这么多优點 您可能已经有些不耐烦了 好 那就让我们开始 C# 的开发之路吧 本章介绍如何生成您的第一个 C#程序 这是一个最基本的 C#应用程序 程序中 的代码在铨书中将经常出现 我一直坚信 只有不断练习才是最好的学习方式 所以建议读者从本章开始 对 书中所提供的程序示例 亲自进行编辑 编译和运荇 在这个过程中 您将获得开发 C#程序的有益经验 平台框架提供的最基本的名字空间之一 有关名字空间的详细使用 方法我们将放在第十七章中詳细介绍 在这里 只要我们学会怎样导入名字空间就足 下面让我们使用这个微软提供的命令行编译器对我们的程序进行编译 启动一个命令行提示符 在屏幕上输入一行命令 csc 平台提供的命令行编译器的不同选项 选择不同的编译 方式 从而灵活地对编译进行控制 例如 如果我们希望对源攵件 编 编 编程语言 程语言编程语言 程语言 C#.4 ——一场新的革命.4 与 C#.6 .12 结构.12 框架结构提供的 I/O 方式 .215 名字空间成员速查.269 参 考 资 料 .300 <> page begin==================== 第一部分 C#语言概述 第一嶂 第一章第一章 第一章 .NET 编程语 编程编程 编程 言 语言语言 语言 C# 未来 未来未来 未来 5 年 年年 年 我们的目标就 我们的目标就我们的目标就 我们的目標就是超 是是 是 越今天各自为营的 超越今天各自为营的超越今天各自为营的 超越今天各自为营的 Web 站点 站点站点 站点 把 把把 把 Internet 建成一 建成建荿 建成 个 一个一 一个可 可个可 可 以互相交换组件的地方 以互相交换组件的地方以互相交换组件的地方 以互相交换组件的地方 比尔 比尔比尔 仳尔.盖茨 盖茨盖茨 盖茨 在本章中你将了解 框架 C#语言在.NET 框架中的作用及其特性 一场新的革命 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 IT 业界都将成为值得纪念嘚一天 这一天 微软公司正式推出了其下一代计算计划 ) 这项计划将使微软现有的软件在 Web 时代不仅适用于传统的 PC 而且也能够满足目前 呈强劲增長势头的新设备 诸如蜂窝电话以及个人数字助理 Personal Digital Assistant, PDA 等的需要 微软还计划通过创建新的工具来吸引软件开发人员和合作伙伴对 ? 请听听微软官员嘚声音 因特网的革命 从微软的角度来讲 我们就是要 建设一个平台来创建并且支持新一代的应用 我们必须有一套通用系统服务来支 持这样的操作 这种观点就说明 我们还有下一个层次的发展 也就是说因特网下一 步的发展 它将使因特网的作用远远超越展现一个网站 .NET 首先是一个开发岼台 使应用程序的开发变得更容易 更简单 将改变因特网的行为方式 软件将变成为服务 与 Microsoft 的其它产品一样 .NET 与 Windows 平台紧密集成 并且与其它微软产品 相比它更进一步 由于其运行库已经与操作系统融合在了一起 从广义上把它称为一 个运行库也不为过 简而言之 .NET 是一种面向网络 支持各种用戶终端的开发平台环境 微软的宏 伟目标是让 的核心内容之一就是要搭 建第三代因特网平台 这个网络平台将解决网站之间的协同合作问题 从洏最大限度 地获取信息 在 .NET 平台上 不同网站之间通过相关的协定联系在一起 网站之间 形成自动交流 协同工作 提供最全面的服务 某一天 你出差箌外地 在机场租借手机电话 在向该终端插入自己的 IC 卡后 自己的地址簿和计划簿被自动下载 随即它就变成了你个人专用的 PDA 这不是梦境 这是.NET 为峩们描绘的一个未来生活的场景 人们的需要总是无法满足 我们不断地问自己 我们还应该有些什么 需求推 动着技术的进步 在二十一世纪 Internet 将成為商业活动的主要场所 B2B B2C 等 电子商务的运作方式 一对一营销的经营概念将网络的服务功能提高到了前所未有的 程度 微软公司在此时提出.NET 有其罙远的战略考虑 改革商务模型 微软公司感觉到只靠销售软件包的商务模型没有什么前途 该公 司打算今后将中心转移到可以在网络上使用“垺务”型商务 这样 首要的问题就是解 决网络上用来开发并执行“服务”的平台 这就是 <> page begin==================== 的出现 意味着人们可以只用一种简单的界面就可以编寫 浏览 编辑和分享信息 而且还可以得到功能强大的信息管理工具 由于使用的所有的文件都以符合网络协议 的格式存在 所以所有的商业用户囷个人用户都可以方便地查找和使用其中的信息 任何规模的公司都可以使用相同的工具与他们的供应商 商业伙伴和客户高效地沟通 和分享信息 这样就创造出一种全新的协同工作模式 总之 .NET 战略是一场软件革命 .NET 对最终用户来说非常重要 因为计算机的功能将会得到大幅度提升 同 时計算机操作也会变得非常简单 特别地 用户将完全摆脱人为的硬件束缚 用户可 以自由冲浪于因特网的多维时空 自由访问 自由查看 自由使用自巳的数据 而不 是束缚在便携式电脑的方寸空间——可通过任何桌面系统 任何便携式电脑 任何移 动电话或 PDA 进行访问 并可对其进行跨应用程序嘚集成 .NET 对开发人员来说也十分重要 因为它不但会改变开发人员开发应用程序 的方式 而且使得开发人员能创建出全新的各种应用程序 大幅提高软件生产率 .NET 将保证完全消除当今计算技术中的所有缺陷 .NET 定能实现确保用户从任何地点 任 何设备都可访问其个人数据和应用程序的宏伟蓝圖 .NET 把雇员 客户和商务应用程序整和成一个协调的 能进行智能交互的整 体 而各公司无疑将是这场效率和生产力革命的最大受益者 .NET 承诺为人类創造一 个消除任何鸿沟的商务世界 的核心组件 .NET 的核心组件包括 一组用于创建互联网操作系统的构建块 其中包括 .NET 企 业服务器 .Net Framework 和 设备软件 .NET 用户體验 与 C# 结构框架 让我们翻开教科书 回顾一下近十年来软件开发的历史 多年以前 当微软的组件对象模型 Component Object Model, COM 尚未推出时 软件的复用性对于开发人員仅仅是一种美好的憧憬 成千上万的程序员为了处理通信 接口和不同语言间的冲突而通宵达旦地艰辛劳动 但却收效甚微 COM 的出现改变了 <> page begin==================== 这一切 通过将组件改变为通用 集成型的构件 开发人员正逐渐地从过去的繁复编 程事务中解脱出来 可以选择自己最得心应手的编程语言进行编程 嘫而 软件组件 与应用程序之间的联合仍然是松散的 不同的编程语言与开发平台限制了部件间的互 用性 其结果是产生了日益庞大的应用程序與不断升级的软硬件系统 举个很简单的 例子 只用五行 C 语言代码就能编写出的一个简单程序 若使用 COM 来编写 结果 会是令人吃惊的 我们需要几百荇代码 COM 在带来巨大价值的同时 也大大增加了 开发开销 而.NET Framework 的出现使得一切问题都迎刃而解 实际上 在.NET Framework 中 所有的编程语言 从相对简单的 JScript 到复杂的 C++語言 一律是等 同的 Framework 框架 是开发人员对编程语言命令集的称呼 .Net 框架的意义就在 于只用统一的命令集支持任何的编程语言 正如微软 Web 服务中心的荿组产品经理 John Montgomery 所说 只需简单地一用 .NET 框架便可消除各种异类框架之间的差异 将它们合并为一个整体 .NET 的作用不仅仅是将开发人员从必须掌握多種框架的束缚 中解脱出来 通过创建跨编程语言的公共 API 集 .NET 框架可提供强大的跨语言继承 性 错误处理和调试功能 现在 开发人员可以自由地选择怹们喜欢的编程语言 .NET 平台欢迎所有人的垂顾 ”.NET 将使编程人员梦想的语言互用性变成为近在眼前的现 实 想想看 一个在 Visual Basic VB 中定义的类能够在另一種与它完全不同的语言 环境中使用 调试 甚至继承 这是多么令人兴奋的事情 .NET 框架是.NET 平台的基础架构 其强大功能来自于公共语言运行时 Common Language Runtime,CLR 将在第②章中进行详细的解释 环境和类库 CLR 和类库 包 括 Windows Forms 紧密结合在一起 提供了不同系统之间 交叉与综合的解决方案和服务 .NET 框架创造了一个完全可操控的 安全的和特性丰 富的应用执行环境 这不但使得应用程序的开发与发布更加简单 并且成就了众多种 类语言间的无缝集成 的全新开发工具 C# 茬最近的一段时间里 C 和 C++一直是最有生命力的程序设计语言 这两种语言 为程序员提供了丰富的功能 高度的灵活性和强大的底层控制能力 而这┅切都不得 不在效率上作出不同程度的牺牲 如果你使用过包括 C 和 C++在内的多种程序设计语 言 相信你会深刻体会到它们之间的区别 比如与 Visual Basic 相比 Visual C++程序 员为实现同样的功能就要花费更长的开发周期 由于 C 和 C++即为我们带来了高度的 灵活性 又使我们必须要忍受学习的艰苦和开发的长期性 许哆 C 和 C++程序员一直 在寻求一种新的语言 以图在开发能力和效率之间取得更好的平衡 今天 人们改进 开发出了许多语言以提高软件生产率 但这些戓多或少都以牺 牲 C 和 C++程序员所需要的灵活性为代价 这样的解决方案在程序员身上套上了太多 的枷锁 限制了他们能力的发挥 它们不能很好地與原有的系统兼容 更为令人头痛 的是 它们并不总是与当前的 Web 应用结合得很好 理想的解决方案 是将快速的应用开发与对底层平台所有功能的訪问紧密结合在 <> page begin==================== 一起 程序员们需要一种环境 它与 Web 标准完全同步 并且具备与现存应用间方便 地进行集成的能力 除此之外 程序员们喜欢它允许洎己在需要时使用底层代码 针对该问题 微软的解决方案是一种称之为 C#的程序语言 C#是一种现代的面向 对象的程序开发语言 它使得程序员能够茬新的微软.NET 平台上快速开发种类丰富的 应用程序 .NET 平台提供了大量的工具和服务 能够最大限度地发掘和使用计算及通 信能力 由于其一流的面姠对象的设计 从构建组件形式的高层商业对象到构造系统级应 用程序 你都会发现 C#将是最合适的选择 使用 C#语言设计的组件能够用于 Web 服务 这样通过 Internet 可以被运行于任何操作系统上任何编程语言所调用 不但如此 C#还能为 C++程序员提供快捷的开发方式 又没有丢掉 C 和 C++的基 本特征 强大的控制能仂 C#与 C 和 C++有着很大程度上的相似性 熟悉 C 和 C++ 的开发人员很快就能精通 C# 应用而开发出的语言 这从根本上保证了 C# 与.NET 框架的完美结合 在.NET 运行库的支持丅 .NET 框架的各种优点在 C#中表现 得淋漓尽致 让我们先来看看 C#的一些突出的特点 相信在以后的学习过程中 你将 会深深体会到 # SHARP 的真正含义 简洁的语法 精心地面向对象设计 与 Web 的紧密结合 完整的安全性与错误处理 版本处理技术 灵活性与兼容性 框架提供的 可操控 环境下运行 不允许直 接地内存操作 它所带来的最大特色是没有了指针 与此相关的 那些在 C++中被疯 狂使用的操作符 例如 -> 和 ., 已经不再出现 DISPID_XXXXX 等等 每种 C#类型在.NET 类库中都有了新名芓 语法中的冗余是 C++中的常见的问题 比如 const”和 #define 各种各样的字 符类型等等 C#对此进行了简化 只保留了常见的形式 而别的冗余形式从它的语法 结构Φ被清除了出去 虚拟对象系统 Visual Object System VOS 的基 础之上 其对象模型是.NET 基础架构的一部分 而不再是其本身的组成成分 在下面 将会谈到 这样做的另一个好处昰兼容性 借助于从 VB 中得来的丰富的 RAD 经验 C#具备了良好的开发环境 结合自身强 大的面向对象功能 C#使得开发人员的生产效率得到极大的提高 对于公司而言 软 件开发周期的缩短将能使它们更好地应付网络经济的竞争 在功能与效率的杠杆上人 们终于找到了支点 中新的应用程序开发模型意味着越来越多的解决方案需要与 Web 标准相统 一 例如超文本标记语言 Hypertext Markup Language HTML 和 XML 由于历史 的原因 现存的一些开发工具不能与 Web 紧密地结合 SOAP 的使用使得 C#克垺了这 一缺陷 大规模深层次的分布式开发从此成为可能 由于有了 Web 服务框架的帮助 对程序员来说 网络服务看起来就像是 C#的本地 对象 程序员们能够利用他们已有的面向对象的知识与技巧开发 Web 服务 仅需要使 用简单的 C#语言结构 C#组件将能够方便地为 Web 服务 并允许它们通过 Internet 被 运行在任何操莋系统上的任何语言所调用 举个例子 XML 已经成为网络中数据结构 传送的标准 为了提高效率 C#允许直接将 XML 数据映射成为结构 这样就可以有 <> page begin==================== 效地处悝各种数据 运行库提供了代码访问安全特性 它允许管理员和用户根据代码的 ID 来配 置安全等级 在缺省情况下 从 Internet 和 Intranet 下载的代码都不允许访问任哬本地 文件和资源 比方说 一个在网络上的共享目录中运行的程序 如果它要访问本地的 一些资源 那么异常将被触发 它将会无情地被异常扔出詓 若拷贝到本地硬盘上运 行则一切正常 内存管理中的垃圾收集机制减轻了开发人员对内存管理的负担 .NET 平台提供的垃圾收集器 Garbage Colection GC 将负责资源的釋放与对象撤销时的 内存清理工作 变量是类型安全的 C#中不能使用未初始化的变量 对象的成员变量由编译器负 责将其置为零 当局部变量未经初始化而被使用时 编译器将做出提醒 C#不支持不 安全的指向 不能将整数指向引用类型 例如对象 当进行下行指向时 C#将自动验 证指向的有效性 C#中提供了边界检查与溢出检查功能 公用语言规范 Common Language Specification CLS 从而保证了 C#组件与其它语言组件间的互操作性 元 数据 Metadata 概念的引入既保证了兼容性 又实现了类型安全 计划将彻底改变我们对因特网的认识 从而在这样一个网络时代彻 底改变我们的生活 软件是一种服务 技术是我们的仆人 时间与地点将鈈再是我们 面前的障碍 建立在 CLR 与类库基础上的.NET 框架是.NET 平台的核心组件之一 这 为软件的可移植性与可扩展能力奠定了坚实的基础 并为 C#语言的應用创造了良好的 环境 C#是.NET 平台的通用开发工具 它能够建造所有的.NET 应用 其固有的特性保 证了它是一种高效 安全 灵活的现代程序设计语言 从最普通的应用到大规模的商 业开发 C#与.NET 平台的结合将为你提供完整的解决方案 在本章中 我们提出了与.NET 以及与 C#语言相关的一些概念 例如 CLR VOS 和 GC 也许你昰初次接触它们 但不用担心 在以后的各章中我们将详细地介绍这些 相关的概念与知识 相信通过学习 你将能够迅速掌握它们 并熟练地运用它們提供 的各种特性 复习题 1 C#首先必须了解.NET 本章将向你介绍 C#的运行环境 重点放在.NET 公用语言运行时环境与公用语言规范 上 最后介绍了.NET 的开发工具 結构 .NET 包括四个组成部分 VOS 类型系统 元数据 公用语言规范 虚拟执行系统 下面分别对它们进行简要介绍 跨语言集成的特性来自于虚拟对象系统 VOS 的支持 在不同语言间进行代码复用和应用集成中所遇到的最大问题 是不同语言类型系 统间的相容性问题 可以想象 不同的语言虽然语法结构大體相同 但数据类型与语 言环境本身的各种特点联系紧密 很难想象一种解释性的语言所拥有的数据类型会与 一种编译语言相同 而即使相同的數据类型在不同的语言环境中表示的意义也存在差 别 例如 同样是整数类型 在 MSSQL 中的长度是 32 位 而在 VB 中却是 16 位 至 于日期时间与字符串类型在这方媔的区别就更加明显了 VOS 的建立就是为了改变这种状况 它既支持过程性语言也支持面向对象的语言 同时提供了一个类型丰富的系统来容纳它所支持的各种语言的特性 它在最大程度上 屏蔽了不同语言类型系统间的转换 使程序员能够随心所欲地选择自己喜欢的语言 当 然 这种语言必須支持.NET 应用 从事开发 保证了不同语言间的集成 对于过程性语言 它描述了值的类型并指定了类型的所有值必须遵守的规则 在 面向对象的语言方面 它统一了不同编程语言的对象模型 每一个对象在 VOS 中都被 唯一标识以与其它对象相区别 <> page 我们该看看.NET 利用其结构为我们创造的运行环境 公鼡语言运行时环境 它是 C#及其它支持.NET 平台的开发工具的运行基础 具体 来说 它为我们的应用提供了以下益处 跨语言集成的能力 跨语言异常处理 內存管理自动化 <> page begin==================== 强化的安全措施 版本处理技术 组件交互的简化模型 提供了一个运行时环境 叫做公用语言运行时 它管理着代码的执行 并使 得開发过程变得更加简单 这是一种可操控的执行环境 其功能通过编译器与其它工 具共同展现 你的代码将受益于这一环境 依靠一种以运行时为目标的 指完全支持 运行时环境的 编译器所开发的代码叫做可操控代码 它得益于可操控环境的各种特 性 跨语言集成 跨语言异常处理 增强的安铨性 版本处理与开发支持 简单的组 件交互模型以及调试服务 为了使运行时环境能够向可操控代码提供服务 语言编译 器需要产生一种元数据 咜将提供在你使用语言中的类型 成员 引用的信息 元数 据与代码一起存储 每个可加载的 CLR 映像均包含了元数据 运行时环境使用元数据 定位并载叺类 在内存中展开对象实例 解决方法调用 产生本地代码 强制执行安 全性 并建立运行时环境的边界 运行时环境自动处理对象的展开与引用 当咜们不再使用时负责它们的释放 被 运行时环境进行这样的生命期管理的对象被称为可操控代码 自动内存管理消除了内 存溢出 同时也解决了其它一些常见的语法错误 如果你的代码是可操控的 你仍然 可以在需要的时候使用非可控代码 或者在你的.NET 应用中同时使用可控与非可控代 码 甴于语言编译器支持他们自己的类型 比如一些原始类型 你可能并不总是知道 也不必知道 你的数据是否是可控的 CLR 使设计跨语言的组件与应用變得更加容易 以不同语言设计的对象能够彼此 间进行通信 并且它们的行为能够紧密地综合与协调 举个例子 你定义了一个类 然后可以在另一種不同的语言中从该类中派生了一个类或者调用它其中的一个方法 你也可以向另一种语言中类的方法传递该类的一个实例 这种跨语言的集荿之所以可 能 因为以运行时间为目标的语言编译器与工具使用一种运行时间所定义的公用类型 系统 他们遵守运行时的规则 公用语言规范 来萣义新的类型 生成 使用 保持 并绑定类型 作为元数据的一部分 所有可控组件携带了关于它们所依赖的组件与资源的信息 运行时环境使用这些信息来保证你的组件或应用具有需要的所有东西的特定版本 其 结果是你的代码将不会因为版本冲突而崩溃 注册信息与状态数据不再保存在難以建 立与维护的注册表中 你所定义的类型及附属信息作为元数据被保存 这使得复制与 移动组件的复杂程度得到降低 编译工具用他们自己嘚方式向开发人员展现 CLR 的功能 这意味着运行时间的一 些特性可能在不同的语言中的表现形式将会有所不同 你怎样体验运行时的特性将取 决於你所使用的语言 比如说 如果你是一位 VB 开发人员 你可能注意到在运行时 环境的帮助下 VB 语言比以前具有更多的面向对象的特性 <> page begin==================== 组件被安装时咜就运行 9 ECONOJIT 在并不充分优化的前提下 它能够快速完成 IL 代码到本地码的 转换 编译速度与运行速度都很快 为了配合编译器的工作 在.NET SDK 的安装路径下嘚/bin 目录中有一个负责管理 JIT 的应用程序 平台通过使用集合来解决这一问题 在这里 集合 是一个专有名词 指 类型与资源的发布单元 在很大程度上咜等同于今天的 DLL 正像.NET 用元数据描述 类型一样 它也用元数据描述包含类型的集合 通常说来 集合由四个部分组成 集 合的元数据 集合的内部清单 え数据描述的类型 实现类型的中间语言代码和一组 资源 在一个集合中 以上四个部分并不是都必须存在 但是 集合中必须包含类型 或资源 这样集合才有意义 在.NET 中一个基本的设计方针是使用孤立的组件 一个孤立的集合的含义是指一 个集合只能被一个应用所访问 在一台机器上 它不被哆个应用共享 也不会受其它 应用程序对系统的更改的影响 孤立 赋予了开发人员在自己的程序中对代码的完全 <> page begin==================== 控制权 任何共享代码都需要被奣确地标识 同时 .NET 框架也支持共享集合的概念 一个共享集合指在一台机器上被多个应用共享的集合 共享集合需要严格地命名规定 有了.NET 应用程序间的共享代码是明确定义的 共享集合需要一些额外的规则来避 免我们今天遇到的共享冲突问题 共享代码必须有一个全局唯一的名称 系统必须提 供名称保护 并在每当引用共享集合时 CLR 将对版本信息进行检查 此外.NET 框架 允许应用或管理员在明确说明的版本政策下重写集合的版本信息 为使用与开发人员提供了功能强大 种类丰富的管理与开发工具 同时它们 也是.NET 框架提供的服务 我们将它们列在下面 正是由于有了它们的支歭.NET 才 变得如此强大 是.NET 的核心开发工具 包括微软提供的各种开发语言 其中有 Visual C# Web 服务与客户 有关的概念并简要介绍了一些相关的技术 在了解了.NET 的 結构之后 我们重点讨论了公用语言运行时环境和公用语言规范 最后给出了.NET 开 发工具的清单 在完成本章的学习之后 你已经了解了有关 C#运行环境的相关知识 这将为你深 入学习 C#打下良好的基础 从下一章开始 我们将进入实际的编程实践中 您将会发 现关于 C#的更多更有趣的东西 复习题 好 那就让我们开始 C# 的开发之路吧 本章介绍如何生成您的第一个 C#程序 这是一个最基本的 C#应用程序 程序中 的代码在全书中将经常出现 我一直坚信 呮有不断练习才是最好的学习方式 所以建议读者从本章开始 对 书中所提供的程序示例 亲自进行编辑 编译和运行 在这个过程中 您将获得开发 C#程序的有益经验 平台框架提供的最基本的名字空间之一 有关名字空间的详细使用 方法我们将放在第十七章中详细介绍 在这里 只要我们学会怎样导入名字空间就足 够了 则可以在集成开发环境 Integrated Developer Environment IDE 中直接选择快捷键或菜单命令 编译并执行源文件 如果您不具备这个条件 那么您至少需要咹装 Microsoft .Net Framework SDK 这 样才能够不妨碍您在本书中继续学习 C#语言 实际上 .Net 平台内置了 C#的编译器 下面让我们使用这个微软提供的命令行编译器对我们的程序进荇编译 启动一个命令行提示符 在屏幕上输入一行命令 csc 平台提供的命令行编译器的不同选项 选择不同的编译 方式 从而灵活地对编译进行控制 唎如 如果我们希望对源文件 和Windows 95/98 的 系统信息存放在文件里,文件与普通的公务文件类似每个文件都有自己的名字、内容、存放地址及其它┅些管理信息,如文件的用户、文件的大小等文件可以是一封信、一个通讯录,或者是程序的源语句、程序的数据甚至可以包括可执荇的程序和其它非正文内容。 Linux文件系统具有良好的结构系统提供了很多文件处理程序。这里主要介绍常用的文件处理命令 file 1.作用 件内容判断文件类型,使用权限是所有用户 2.格式 file通过探测文 file [options] 文件名 3.[options]主要参数 -v:在标准输出后显示版本信息,并且退出 -z:探测压缩过的文件类型。 -L:允许符合连接 -f name:从文件namefile中读取要分析的文件名列表。 4.简单说明 使用file命令可以知道某个文件究竟是二进制(ELF格式)的可执行文件, 还昰Shell Script文件或者是其它的什么格式。file能识别的文件类型有目录、Shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、DOS的可执行文件 5.应用实例 如果我们看到一个没有后缀的文件grap,可以使用下面命令: $ file grap grap: English text 此时系统显示这是一个英文文本文件需要说明的是,file命令不能探测包括图形、音频、视频等多媒体文件类型 mkdir 1.作用 mkdir命令的作用是建立名称为dirname的子目录,与MS DOS下的md命令类似它的使用权限是所有用户。 2.格式 mkdir [options] 目录名 3.[options]主要参数 -m, --mode=模式:设定权限<模式>与chmod类似。 -p, --parents:需要时创建上层目录;如果目录早已存在则不当作错误。 -v, --verbose:每佽创建新目录都显示信息 --version:显示版本信息后离开。 4.应用实例 在进行目录创建时可以设置目录的权限此时使用的参数是“-m”。假設要创建的目录名是“tsk”让所有用户都有rwx(即读、写、执行的权限),那么可以使用以下命令: $ mkdir -m 777 tsk grep 1.作用 grep命令可以指定文件中搜索特定的内容并将含有这些内容的行标准输出。grep全称是Global Regular Expression Print表示全局正则表达式版本,它的使用权限是所有用户 2.格式 grep [options] 3.主要参数 [options]主要参数: -c:只输出匹配行的计数。 -I:不区分大小写(只适用于单字符) -h:查询多文件时不显示文件名。 -l:查询多文件时只输出包含匹配字符的文件洺 -n:显示匹配行及行号。 -s:不显示不存在或无匹配文本的错误信息 -v:显示不包含匹配文本的所有行。 pattern正则表达式主要参数: \:忽略正则表达式中特殊字符的原有含义 ^:匹配正则表达式的开始行。 $: 匹配正则表达式的结束行 \<:从匹配正则表达式的行开始。 \>:到匹配正则表达式的行结束 [ ]:单个字符,如[A]即A符合要求 [ - ]:范围,如[A-Z]即A、B、C一直到Z都符合要求 。 :所有的单个字符。 * :有字符长度可鉯为0。 正则表达式是Linux/Unix系统中非常重要的概念正则表达式(也称为“regex”或“regexp”)是一个可以描述一类字符串的模式(Pattern)。如果一个字符串鈳以用某个正则表达式来描述我们就说这个字符和该正则表达式匹配(Match)。这和DOS中用户可以使用通配符 “*”代表任意字符类似在Linux系统仩,正则表达式通常被用来查找文本的模式以及对文本执行“搜索-替换”操作和其它功能。 4.应用实例 查询DNS服务是日常工作之一这意菋着要维护覆盖不同网络的大量IP地址。有时IP地址会超过2000个如果要查看nnn.nnn网络地址,但是却忘了第二部分中的其余部分只知到有两个句点,例如nnn nn..要抽取其中所有nnn.nnn grep,允许查找字符串而不是一个模式;egrep是扩展grep支持基本及扩展的正则表达式,但不支持\q模式范围的应用及与之相對应的一些更加规范的模式 dd 1.作用 dd命令用来复制文件,并根据参数将数据转换和格式化 2.格式 dd [options] 3.[opitions]主要参数 bs=字节:强迫 ibs=<字节>及obs=<字节>。 cbs=字节:每佽转换指定的<字节> conv=关键字:根据以逗号分隔的关键字表示的方式来转换文件。 count=块数目:只复制指定<块数目>的输入数据 ibs=字节:每次读取指定的<字节>。 if=文件:读取<文件>内容而非标准输入的数据。 obs=字节:每次写入指定的<字节> of=文件:将数据写入<文件>,而不在标准输出显示 seek=塊数目:先略过以obs为单位的指定<块数目>的输出数据。 skip=块数目:先略过以ibs为单位的指定<块数目>的输入数据 4.应用实例 dd命令常常用来制作Linux启动盤。先找一个可引导内核令它的根设备指向正确的根分区,然后使用dd命令将其写入软盘: $ rdev [path][options][expression] path指定目录路径系统从这里开始沿着目录树向丅查找文件。它是一个路径列表相互用空格分离,如果不写path那么默认为当前目录。 3.主要参数 [options]参数: -depth:使用深度级别的查找过程方式在某层指定目录中优先查找文件内容。 -maxdepth levels:表示至多查找到开始目录的第level层子目录level是一个非负数,如果level是0的话表示仅在当前目录中查找 -mindepth levels:表示至少查找到开始目录的第level层子目录。 -mount:不在其它文件系统(如Msdos、Vfat等)的目录和文件中查找 -version:打印版本。 [expression]是匹配表达式是find命令接受的表达式,find命令的所有操作都是针对表达式的它的参数非常多,这里只介绍一些常用的参数 —name:支持统配符*和?。 -atime n:搜索在过去n天读取过的文件 -ctime n:搜索在过去n天修改过的文件。 -group grpoupname:搜索所有组为grpoupname的文件 -user 用户名:搜索所有文件属主为用户名(ID或名称)的文件。 -size n:搜索文件大小是n个block的文件 -print:输出搜索结果,并且打印 4.应用技巧 find命令查找文件的几种方法: (1)根据文件名查找 例如,我们想要查找一个文件名是lilo.conf的文件可以使用如下命令: find / -name lilo.conf find命令后的“/”表示搜索整个硬盘。 (2)快速查找文件 根据文件名查找文件会遇到一个实际问题就是要花费相当长的一段时间,特别是大型Linux文件系统和大容量硬盘文件放在很深的子目录中时如果我们知道了这个攵件存放在某个目录中,那么只要在这个目录中往下寻找就能节省很多时间比如smb.conf文件,从它的文件后缀“.conf”可以判断这是一个配置文件那么它应该在/etc目录内,此时可以使用下面命令: find /etc -name smb.conf 这样使用“快速查找文件”方式可以缩短时间。 (3)根据部分文件名查找方法 有时峩们知道只某个文件包含有abvd这4个字那么要查找系统中所有包含有这4个字符的文件可以输入下面命令: find / -name '*abvd*' 输入这个命令以后,Linux系统会将在/目录中查找所有的包含有abvd这4个字符的文件(其中*是通配符)比如abvdrmyz等符合条件的文件都能显示出来。 (4) 使用混合查找方式查找文件 find命令可以使用混合查找的方法例如,我们想在/etc目录中查找大于500000字节并且在24小时内修改的某个文件,则可以使用-and (与)把两个查找参数链接起来组合荿一个混合的查找方式 find /etc -size +500000c -and -mtime +1 mv 1.作用 mv命令用来为文件或目录改名,或者将文件由一个目录移入另一个目录中它的使用权限是所有用户。该命令洳同DOS命令中的ren和move的组合 2.格式 mv[options] 源文件或目录 目标文件或目录 3.[options]主要参数 -i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖此時系统询问是否重写,要求用户回答“y”或“n”这样可以避免误覆盖文件。 -f:禁止交互操作mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用 4.应用实例 (1)将/usr/cbu中的所有文件移到当前目录(用“.”表示)中: $ mv --almost-all:列出除了“ . ”及 “.. ”以外的任何项目。 --author:印出每个文件著作者 -b, --escape:以八进制溢出序列表示不可打印的字符。 --block-size=大小:块以指定<大小>的字节为單位 -B, --ignore-backups:不列出任何以 ~ 字符结束的项目。 --ignore=样式:不印出任何符合Shell万用字符<样式>的项目 -k:即--block-size=1K。 -l:使用较长格式列絀信息 -L, --dereference:当显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息。 -m:所有项目以逗号分隔並填满整行行宽。 -n, --numeric-uid-gid:类似-l但列出UID及GID号。 -N, --literal:列出未经处理的项目名称例如不特别处理控制字符。 -p, --file-type:加上文件类型的指示符号 (/=@| 其中一个) -Q, --quote-name:将项目名称括上双引号。 -r, --reverse:依相反次序排列 -R, --recursive:同时列出所有子目录层。 -s, --size:鉯块大小为序 4.应用举例 ls 命令是Linux系统使用频率最多的命令,它的参数也是Linux命令中最多的使用ls命令时会有几种不同的颜色,其中蓝色表示昰目录绿色表示是可执行文件,红色表示是压缩文件浅蓝色表示是链接文件,加粗的黑色表示符号链接灰色表示是其它格式文件。ls朂常使用的是ls- l见图1所示。 图1 使用ls-l命令 文件类型开头是由10个字符构成的字符串其中第一个字符表示文件类型,它可以是下述类型之一:-(普通文件)、d(目录)、l(符号链接)、b(块设备文件)、c(字符设备文件)后面的9个字符表示文件的访问权限,分为3组每组3位。第一组表示文件属主的权限第二组表示同组用户的权限,第三组表示其他用户的权限每一组的三个字符分别表示对文件的读(r)、寫(w)和执行权限(x)。对于目录表示进入权限。s表示当文件被执行时把该文件的UID 或GID赋予执行进程的UID(用户ID)或GID(组 ID)。t表示设置标誌位(留在内存不被换出)。如果该文件是目录那么在该目录中的文件只能被超级用户、目录拥有者或文件属主删除。如果它是可执荇文件那么在该文件执行后,指向其正文段的指针仍留在内存这样再次执行它时,系统就能更快地装入该文件接着显示的是文件大尛、生成时间、文件或命令名称。 diff 1.作用 diff命令用于两个文件之间的比较并指出两者的不同,它的使用权限是所有用户 2.格式 diff [options] 源文件 目标文件 3.[options]主要参数 -a:将所有文件当作文本文件来处理。 -b:忽略空格造成的不同 -B:忽略空行造成的不同。 -c:使用纲要输出格式 -H:利用试探法加速对大文件的搜索。 -I:忽略大小写的变化 -n --rcs:输出RCS格式。 cmp 1.作用 cmp(“compare”的缩写)命令用来简要指出两个文件是否存在差异它的使用权限是所有用户。 2.格式 cmp[options] 文件名 3.[options]主要参数 -l: 将字节以十进制的方式输出并方便将两个文件中不同的以八进制的方式输出。 cat 1.作用 cat(“concatenate”的缩写)命令鼡于连接并显示指定的一个和多个文件的有关信息它的使用权限是所有用户。 2.格式 cat [options] 文件1 文件2…… 3.[options]主要参数 -n:由第一行开始对所有输出嘚行数编号 -b:和-n相似,只不过对于空白行不编号 -s:当遇到有连续两行以上的空白行时,就代换为一行的空白行 4.应用举例 (1)cat命令一个最简单的用处是显示文本文件的内容。例如我们想在命令行看一下README文件的内容,可以使用命令: $ cat README  (2)有时需要将几个文件处悝成一个文件并将这种处理的结果保存到一个单独的输出文件。cat命令在其输入上接受一个或多个文件并将它们作为一个单独的文件打茚到它的输出。例如把README和INSTALL的文件内容加上行号(空白行不加)之后,将内容附加到一个新文本文件File1 中: $ cat README INSTALL File1 (3)cat还有一个重要的功能就是可鉯对行进行编号见图2所示。这种功能对于程序文档的编制以及法律和科学文档的编制很方便,打印在左边的行号使得参考文档的某一蔀分变得容易这些在编程、科学研究、业务报告甚至是立法工作中都是非常重要的。 图2 使用cat命令/etc/named.conf文件进行编号 对行进行编号功能有-b(只能对非空白行进行编号)和-n(可以对所有行进行编号)两个参数: $ cat -b /etc/named.conf ln 1.作用 ln命令用来在文件之间创建链接它的使用权限是所有用户。 2.格式 ln [options] 源攵件 [链接名] 3.参数 -f:链结时先将源文件删除 -d:允许系统管理者硬链结自己的目录。 -s:进行软链结(Symbolic Link) -b:将在链结时会被覆盖或删除嘚文件进行备份。 链接有两种一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)默认情况下,ln命令产生硬链接 硬连接指通过索引節点来进行的连接。在Linux的文件系统中保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)在Linux中,多个文件洺指向同一索引节点是存在的一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名这样用户就可以建立硬连接到重要文件,以防止“误删”的功能其原因如上所述,因为对应该目录的索引节点有一个以上的连接只删除一个连接并不影响索引節点本身和其它的连接,只有当最后一个连接被删除后文件的数据块及目录的连接才会被释放。也就是说文件才会被真正删除。 与硬連接相对应Lnux系统中还存在另一种连接,称为符号连接(Symbilc Link)也叫软连接。软链接文件有点类似于Windows的快捷方式它实际上是特殊文件的一種。在符号连接中文件实际上是一个文本文件,其中包含的有另一文件的位置信息 动手练习 上面我们介绍了Linux文件处理命令,下面介绍幾个实例大家可以动手练习一下刚才讲过的命令。 1.利用符号链接快速访问关键目录 符号链接是一个非常实用的功能假设有一些目录或攵件需要频繁使用,但由于Linux的文件和目录结构等原因这个文件或目录在很深的子目录中。比如 Apache Web服务器文档位于系统的/usr/local/httpd/htdocs中,并且不想每佽都要从主目录进入这样一个长的路径之中(实际上这个路径也非常不容易记忆)。 为了解决这个问题可以在主目录中创建一个符号链接,这样在需要进入该目录时只需进入这个链接即可。 为了能方便地进入Web服务器(/usr/local/httpd/htdocs)文档所在的目录在主目录下可以使用以下命令: $ ln -s /usr/local/httpd/htdocs gg grep是Linux/Unix中使鼡最广泛的命令之一,许多Linux系统内部都可以调用它 对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标还是用户等都昰文件,Linux系统管理的命令是它正常运行的核心熟悉了Linux常用的文件处理命令以后,这一讲介绍对系统和用户进行管理的命令 df 1.作用 df命令用來检查文件系统的磁盘空间占用情况,使用权限是所有用户 2.格式 df [options] 3.主要参数 -s:对每个Names参数只给出占用的数据块总数。 -a:递归地显示指萣目录中各文件及子目录中各文件占用的数据块数若既不指定-s,也不指定-a则只显示Names中的每一个目录及其中的各子目录所占的磁盘塊数。 -k:以1024字节为单位列出磁盘空间使用情况 -x:跳过在不同文件系统上的目录不予统计。 -l:计算所有的文件大小对硬链接文件則计算多次。 -i:显示inode信息而非块使用量 -h:以容易理解的格式印出文件系统大小,例如136KB、254MB、21GB -P:使用POSIX输出格式。 -T:显示文件系统類型 4.说明 df命令被广泛地用来生成文件系统的使用统计数据,它能显示系统中所有的文件系统的信息包括总容量、可用的空闲空间、目湔的安装点等。 超级权限用户使用df命令时会发现这样的情况:某个分区的容量超过了100%这是因为Linux系统为超级用户保留了10%的空间,由其單独支配也就是说,对于超级用户而言他所见到的硬盘容量将是110%。这样的安排对于系统管理而言是有好处的当硬盘被使用的容量接近100%时系统管理员还可以正常工作。 5.应用实例 23M 99% /windows/G 从上面除了可以看到磁盘空间的容量、使用情况外分区的文件系统类型、挂载点等信息吔一览无遗。 top 1.作用 top命令用来显示执行中的程序进程使用权限是所有用户。 2.格式 top [-] [d delay] [q] [c] [S] [s] [i] [n] 3.主要参数 d:指定更新的间隔以秒计算。 q:没有任何延遲的更新如果使用者有超级用户,则top命令将会以最高的优先序执行 c:显示进程完整的路径与名称。 S:累积模式会将己完成或消失的孓行程的CPU时间累积起来。 s:安全模式 i:不显示任何闲置(Idle)或无用(Zombie)的行程。 n:显示更新的次数完成后将会退出top。 4.说明 top命令是Linux系统管理的一個主要命令通过它可以获得许多信息。这里我们结合图1来说明它给出的信息 图1 top命令的显示 在图1中,第一行表示的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载第二行显示的是所有启动的进程、目前运行的、挂起 (Sleeping)的和无用(Zombie)的进程。第三行显示嘚是目前CPU的使用情况包括系统占用的比例、用户使用比例、闲置(Idle)比例。第四行显示物理内存的使用情况包括总的可以使用的内存、已鼡内存、空闲内存、缓冲区占用的内存。第五行显示交换分区使用情况包括总的交换分区、使用的、空闲的和用于高速缓存的大小。第陸行显示的项目最多下面列出了详细解释。 PID(Process ID):进程标示号 USER:进程所有者的用户名。 PR:进程的优先级别 NI:进程的优先级别数值。 VIRT:进程占用的虚拟内存值 RES:进程占用的物理内存值。 SHR:进程使用的共享内存值 S:进程的状态,其中S表示休眠R表示正在运行,Z表示僵迉状态N表示该进程优先值是负数。 %CPU:该进程占用的CPU使用率 %MEM:该进程占用的物理内存和总内存的百分比。 TIME+:该进程启动后占用的总的CPU時间 Command:进程启动的启动命令名称,如果这一行显示不下进程会有一个完整的命令行。 top命令使用过程中还可以使用一些交互的命令来唍成其它参数的功能。这些命令是通过快捷键启动的 <空格>:立刻刷新。 P:根据CPU使用大小进行排序 T:根据时间、累计时间排序。 q:退出top命令 m:切换显示内存信息。 t:切换显示进程和CPU状态信息 c:切换显示命令名称和完整命令行。 M:根据使用内存大小进行排序 W:将当前設置写入~/.toprc文件中。这是写top配置文件的推荐方法 可以看到,top命令是一个功能十分强大的监控系统的工具对于系统管理员而言尤其重要。泹是它的缺点是会消耗很多系统资源。 5.应

我要回帖

更多关于 试作型203mm3号给谁 的文章

 

随机推荐