首页 课程:Windows高级编程及实践 性质:专选 学时:3_18 = 54 学分

课程:Windows高级编程及实践 性质:专选 学时:3_18 = 54 学分

举报
开通vip

课程:Windows高级编程及实践 性质:专选 学时:3_18 = 54 学分课程:Windows高级编程及实践 性质:专选 学时:3_18 = 54 学分 课程:Windows高级编程及实践 性质:专选 学时:3*18 = 54 学分:3 教材: 本人的《Windows编程》电子课件(在中大计算机系服务器上我的个人主页~isscwli/中) 参考书: 主要参考书: 陈锵等. Visual C++ 2005从入门到精通(普及版). 电子工业出版社,2007.5. (16开/416 页/40元) Ivor Horton(苏正泉&李文娟译). Visual C++ 2010入门经典(...

课程:Windows高级编程及实践 性质:专选 学时:3_18 = 54 学分
课程:Windows高级编程及实践 性质:专选 学时:3_18 = 54 学分 课程:Windows高级编程及实践 性质:专选 学时:3*18 = 54 学分:3 教材: 本人的《Windows编程》电子 课件 超市陈列培训课件免费下载搭石ppt课件免费下载公安保密教育课件下载病媒生物防治课件 可下载高中数学必修四课件打包下载 (在中大计算机系服务器上我的个人主页~isscwli/中) 参考书: 主要参考书: 陈锵等. Visual C++ 2005从入门到精通(普及版). 电子工业出版社,2007.5. (16开/416 页/40元) Ivor Horton(苏正泉&李文娟译). Visual C++ 2010入门经典(第5版). 清华大学出版 社,2010.12.(16开/1011页/128元) George Shepherd & David Kruglinski(潘爱民译). Microsoft Visual C++ .NET技术内幕 (第6版). 清华大学出版社,2004.7.(16开/920页/106元) 陈锵等. Visual C# 2005从入门到精通(普及版). 电子工业出版社,2007.5.(16开/399 页/38元) John Shap. Visual C# 2010从入门到精通. 清华大学出版社,2010.8.(16开/652页/78元) A. Hejlsberg等. C# 编程语言祥解(第2版). 电子工业出版社,2007.8.(16开/716页 /79元) Andrew Troelsen(朱晔等译). C# 与.NET 4高级程序设计(第5版). 人民邮电出版社, 2011.4.(16开/1197页/149元) Christian Nagel, Bill Evjen, Jay Glynn(李铭译). C# 高级编程(第7版). 清华大学出 版社,2010.11.(16开/1473页/148元) A. Nathan. WPF揭秘. 人民邮电出版社,2009.3. (16开/486页/75元) 成绩:考勤答问5% + 平时作业15% + 大作业20% + 期末开卷笔试60% 教学目的与课程要求: 了解Windows编程的特点与Visual Studio开发平台,掌握Visual C++的MFC和Visual C# 的.NET编程,基本掌握图形用户界面和若干实用的Windows编程技术。为今后的计算机各专业课程的软件实验,提供编程界面友好程序的现代工具与手段。 课程的内容主要包括:用户界面、图形、文档/视图等MFC基础编程, 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 C++与STL、Java、C# 等OOP语言的语法和特点,.NET框架、FCL类库、窗体、WPF、LINQ等.NET编程技术,以及GDI+、DLL、多核、数据库、网络等高级和实用程序设计。 在教学过程中强调基本性质的了解、具体方法的掌握和实际动手能力的培养。采用课堂讲解与现场演示相结合、理论课与实验课相结合、平时练习和综合作业相结合的方式,使学生掌握Windows编程的基本内容和主要方法。 特别强调学生自己动手上机实习,要求编程实现课堂示例和课后练习。最后学生分小组每组自选一个相关题目作为综合性编程的大作业,并于期末在课堂上进行演示。 课程内容:参见教学大纲。 具体的教学内容及授课时间和顺序的安排,见课程教学 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 表。 作业要求 , 提交的作业内容 1 , 说明性文档:姓名、学号、班级、章节,题目的名称、内容和要求、心得体会。(电 子文档,Word 2003格式[*.doc])(说明文档占作业成绩的30%以上)。 , 源程序:解决方案文件(*.sln)、项目文件(*.vcproj)、头文件(*.h)、代码文件(*.cpp)、 资源文件(*.rc)等文件及资源目录res,不要Debug/Release目录(包括其中的可 执行文件)和各种中间文件(如*.ncb、*.pch和*.suo等),但是必须包含项目目录 和有用的子目录(如资源子目录res)。总之,提交的内容要以能够正确编译连接产 生可执行程序的最少文件为准。(打包后的文件一般不会超过1MB,不然肯定是包 含了不必要的文件)。 , 提交作业的方式: , 将作业打包后上传到我的网络硬盘对应的目录中。可在院主页按右上角的“登录”, 用学号登录(初始密码12345)后,可看到所有老师的网络硬盘。 , 注意:作业包名应该包含自己的学号、姓名,及与作业内容相关的文字串(如 “09380123张三- MFC基础.rar”、“09380124李四-菜单.rar”、“09380125王五-对话 框.zip”) , 提交作业的时间: , 平时作业:(一般要求)在布置作业后的一周之内。 , 大作业:考试之前(3-5人自由组成一个小组,每个小组只做一个大作业,题目由 自己任选,只要与课程内容相关即可),需要在期末进行演示和答辩。 答疑 , 课中或课间当面问答 , 发电子邮件到我的信箱 isscwli@mail.sysu.edu.cn,最好附上有问题的源代码(可编译的 整个项目包),我会尽快回答 , 注意:不要在上交到我的网络硬盘中的作业里面提问题,因为我只在期末才会查看你们 交的作业。 软件安装说明 , VS10安装说明: , 安装软件(可从我的个人网页~isscwli/的“相关软件下载”部 分下载):Visual Studio 2010中文旗舰版(VS2010UltimateCHS.iso,2.5 GB)和其 SP1(VS2010SP1dvd1.iso,1.48GB)。 , 适用操作系统:Windows XP SP3、Windows Server 2003 SP2、Windows Vista SP2、 Windows Server 2008 SP2、Windows 7及以上版本。 , 占用硬盘:6~10 GB , 安装时间:1小时左右。 2 第1章 绪论 Windows是PC机的主流操作系统,具有流行的图形用户界面,其图形子系统经历了GDI、GDI+ 和WPF等三个发展阶段。.NET是微软所提倡的一种跨语言、跨平台、面向组件的新技术,由包含运行环境与类库的.NET框架和应用程序开发平台Visual Studio两部分组成,前者是新版Windows操作系统Windows Vista和Windows 7的核心,后者则是本书所使用的编程环境。 C#、Visual Basic和Visual C++等是Windows的主要编程语言和工具,其中,除Java、 了Java是Sun/Oracle公司的产品外,其余都由微软公司的开发平台Visual Studio所提供。Java是网络编程的首选、C# 是.NET编程的首选、Visual C++的MFC则是编写大型和系统Windows程序的传统工具。 本书主要介绍使用Visual C++的MFC和Visual C# 编写传统和.NET的具有图形用户界面的Windows应用程序。MFC是一种应用程序框架,是对Windows API的C++类封装,还提供了方便的消息映射机制和有用的文档/视图架构。C# 则是微软专门为.NET开发的一种类似于Java的程序设计高级语言,具有简单、现代、面向对象和类型安全等特点。 本章先介绍操作系统的发展和图形用户界面的组成,再讨论Windows的特点、构成和主要版本及Windows图形子系统的发展,接着简介.NET技术中的.NET框架和Visual Studio,最后给出Windows编程的常用工具和选择。 1.1 操作系统与图形用户界面 操作系统经历了控制面板、字符界面、图形界面、多媒体界面等多个发展阶段。图形用户界面由图形显示设备和指示跟踪设备构成,图形界面元素包括窗口、菜单、工具条、功能区、对话框、图标和各种控件等。Windows的图形子系统,经历了GDI、GDI+ 和WPF等三个发展阶段。 1.1.1 操作系统及其发展 操作系统(Operating System,OS)是计算机硬件和用户之间的接口,负责管理和协调计算机资源的活动和分配,参见图1-1。最早的计算机没有操作系统,使用控制面板进行手 3 工操作。有了操作系统后,又经历了批处理、多如 你、我 用户 任务和分布式等多个发展阶段。 如IE、Word、QQ 应用程序 操作系统的用户界面(User Interface,UI), 如Win32/64 API 应用程序接口 从简单原始的字符界面,发展到直观易用的图形 界面,再到人性化的多媒体界面,目前正向智能如Windows 操作系统 感知、无处不在的普适计算(Pervasive Computing) 如PC机 计算机硬件 的方向发展,参见图1-2。 图1-1 操作系统 OS:无(控制面板) ? 批处理(电传打字机) ? 多任务(控制台/GUI) ? 分布式(网络/人性化) UI:无界面 ? 字符界面 ? 图形界面 ? 多媒体界面 ? 普适计算 OS与UI实例:Unix / DOS / Linux ? Mac OS / X-Window / Windows / KDE / GNOME ? iOS / Android / Windows Phone / BlackBerry OS 图1-2 操作系统的发展 1.1.2 图形用户界面 图形用户界面(Graphical User Interface,GUI)是当前各主流操作系统的标准构件。GUI是计算机的一种人机接口,由图形显示设备(屏幕、投影仪等)和指示跟踪设备(鼠标、跟踪球、光笔/手写笔、[单点/多点触控的]触摸屏等)组成,用户可通过指示设备来操作图形设备上的界面元素(窗口、菜单、工具条、功能区、对话框、图标、各种控件等)以完成各种工作。 与DOS(Disk Operating System,磁盘操作系统)和原始Unix等基于命令行的字符界面的旧式OS相比,GUI的优点有:形象直观、使用简单、操作方便、人性化、不需记忆各种命令和参数、应用软件基本功能的操作一致或相似、有大量API(和类库)供程序员调用。 下面列出GUI的发展简史: , 1950年MIT(麻省理工学院)的林肯实验室推出CRT显示器。 , 1963年Douglas Engelbart发明鼠标,1968年他又推出视窗与人机界面。 , 1972年Alan Kay设计出面向对象的Smalltalk语言,首创下拉式菜单,提出GUI概念。 , 1973年Xerox(施乐)公司的PARC(Palo Alto Research Center,帕洛阿尔托研究中心) 的Charles P. Thacker和Butler Lampson设计出具有图形用户界面的原型机Alto(男高音 4 /女低音)。 , 1982年美国的多伦多大学和贝尔实验室发明了多点触控屏幕。 , 1984年Apple公司(受Alto的启发)推出Macintosh(胶布雨衣)计算机,率先在商品 微机中引入图形用户界面。 , 1985年MIT设计出Unix的图形用户界面X-Window。 , 1985年Microsoft公司(仿照Macintosh)推出PC机DOS操作系统的图形用户界面 Windows;1990年推出的Windows 3.0获得成功;1993年推出基于微内核结构的独立 操作系统Windows NT。 , 1995年5月微软推出的Windows 95中,增加了任务栏和可视主题(visual theme)—— 一种包含图形外观细节的预置包,用于定制操作系统、部件集(widget set)或窗口管 (look and feel)。 理器的外表体验 , 1998年和1999年分别发布了由Mathias Ettrich和GNU成员开发的运行于Unix以及 Linux、FreeBSD等类Unix操作系统上的自由开源桌面环境(GUI)——KDE(K Desktop Environment,K桌面环境)和GNOME(The GNU Network Object Model Environment, GNU网络对象模型环境)。 , 2001年3月24日推出Mac OS X(第10版),引入全新的Aqua(水/溶液/浅绿色)GUI, 具有明快的颜色、半透明和光反射的效果、小水滴般的元素、果冻式的按钮等。 , 2006年11月8日微软推出的Windows Vista中,包含了(似Mac OS X Aqua的)Aero (气体/航空/飞行)新用户界面,具有兼具专业感及透明感的磨砂玻璃外观、圆滑的窗 口动画、Flip 3D窗口等角排列方式、即时缩略图、字体更清晰边缘更平滑的ClearType 新字体。此外,Vista还引入了新型图形子系统WPF。 , 2006年11月30日微软在其推出的Office 2007中,使用了流畅用户界面(Fluent User Interface),其主体是功能区(ribbon,缎带)——一种用于替代传统的菜单、工具条工 具条和用户对话框的窗体。功能区UI也被用于Windows 7的画图和写字板等其他软件 中。功能区的雏形是1995年Nick Bradbury为Borland Delphi开发的网页编辑器HomeSite 中的选卡式工具条(tabbed toolbars),1997年Nick带着HomeSite加入了Allaire公司, 2001年Macromedia公司并购了Allaire,并在其Dreamweaver MX软件中使用了选卡式 工具条,2005年Macromedia又被Adobe公司并购了。 , 2007年苹果发表了应用多点触控技术的产品iPhone与iPod touch,2010年4月3日又 推出了支持多点触控技术的iPad系列产品。 5 1.2 Windows Windows(视窗)是Microsoft(微软)公司为PC(Personal Computer,个人计算机)机开发的具有图形用户界面的多任务操作系统,占有近90%的市场份额。 1.2.1 发展历程 早期的Windows并不是一个独立的操作系统,而只是DOS的一个补丁程序。最初的 ,运行于16位的286 PC机上,又慢又差,Windows 1.0(于1985年11月20日推出)和2.0 被业界所唾弃。随着386 CPU的推出和微软公司的不断改进,1990年推出的(16位)Windows 3.0获得了巨大的成功,后来推出的带浏览器IE的(32位)Windows 95/98也得到广泛好评。但2000年推出的面向家用、强调多媒体的Windows Me(Millennium Edition,千年版),由于笨拙、差慢,导致失败,传统DOS外挂GUI模块型的Windows也走到了尽头。 1993年微软开发出基于微内核结构的32位独立操作系统Windows NT(New Technology,新技术),2000年和2001年分别推出基于NT的Windows 2000和Windows XP(eXPerience,体验),大受好评,被广泛使用。 2006年底,微软推出(同样基于NT)的Windows Vista(远景/街景/展望)内含.NET框架和DirectX模块、还引入了全新的WPF图形子系统,具有华丽的Aero用户界面。但由于Vista对硬件要求高、兼容性差、且速度慢,惨招失败。微软痛定思痛,对Vista进行了大量的改进,于2009年秋推出了运行效率高、对硬件要求低、而且兼容性好的Windows 7,获得了一致好评。 将于2012年推出Windows 8引入Metro(地铁)卡片界面,支持ARM CPU和多点触控,同时支持PC机、平版电脑和智能手机,意欲改变Windows操作系统在平版电脑和智能手机领域的落后状态。 1.2.2 主要版本 表1-1列出了Windows的主要版本,包括发布时间、商品名、系统内核版本号、主要特点等基本内容。其中,Windows的内核分成两大类:传统的外挂内核(1.0~4.9)和现代的微内核(NT 3.1~6.1),前者已被淘汰,新版Windows(如2000、XP、Vista、7、8)都基于后者。 6 表1-1 Windows的主要版本 发布时间 商品名 版本号 位数 说明 Windows 1.0 1.0 16 1985年11月 GUI、GDI、16位、差/慢 Windows 2.0 2.0 16 1987年11月 Windows 3.0 3.0 16 1990年5月 成功 Windows 3.1 3.1 16 1992年3月 多媒体 Windows for 3.1 16 1992年10月 工作组,本地网 Workgroups 3.1 Windows NT 3.1 NT 3.1 32 1993年7月 独立、32位、微内核 Windows NT 3.5 NT 3.5 32 1994年9月 Windows 95 4.0 16/32 1995年5月 32位,IE,任务栏、可视主题 Windows NT 4.0 NT 4.0 32 1996年7月 Windows 98 4.1 32 1998年6月 Windows 2000 NT 5.0 32 2000年2月 NT+98,流媒体 Windows Me 4.9 32 2000年10月 家用,多媒体,失败 Windows XP NT 5.1 32 2001年10月 GDI+、功能强大,成功 NT 5.2 64 2003年3月 Windows XP 64位版 支持IA-64 Windows Server 2003 NT 5.2 32/64 2003年4月 服务器版、支持x64和IA-64 Windows XP 专业 NT 5.2 64 2005年4月 支持x64 x64位版 .NET框架、WPF、Aero GUI、Windows Vista NT 6.0 32/64 2006年11月 支持x64和多核,对硬件要求 高、兼容性差、速度慢,失败 Windows Server 2008 NT 6.0 32/64 2008年2月 服务器版、支持x64和IA-64 基于Vista、高效、对硬件要求Windows 7 NT 6.1 32/64 2009年10月 较低、兼容性好 支持ARM CPU/多点触控Windows 8 NT 6.2 32/64 2012年,月 /Metro界面、同时支持PC机/ 平版电脑/智能手机 7 为了适应客户端和服务器计算机的不同的需要,Windows操作系统又被划分成普通版与服务器版两大类,前者用Windows命名,后者则用Windows Server来命名。随着64位CPU的推出和普及,新版的Windows操作系统一般包含x86、x64和IA64三个版本。其中的IA64,由于硬件贵且兼容性差,用户很少。此外,Windows还有用于嵌入式和移动设备的Windows Embedded Compact,嵌入式小型)、Pocket PC和Windows Mobile,但是因其结构老旧、CE( 系统臃肿、功能落后、性能差,用户很少。不过,微软于2010年10月11日推出的,用于智能手机的操作系统Windows Phone 7,有所改进。而 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 于明年推出的Windows 8,将引入Metro界面、优化多点触控,并增加了对ARM CPU的支持、可大大改进对平版电脑和智能手机的支持。 其所提供功另外,每个Windows版本(version)在销售时,针对不同用户的需求,按能的多少,又被分成若干具体的版本(edition)。如Windows XP主要有初级版(Starter Edition)、家庭版(Home Edition)、专业版(Professional Edition)和媒体中心版(Media Center Edition),Windows 7则有初级(Starter)版、家庭普通(Home Basic)版、家庭高级(Home Premium)版、专业(Professional)版、企业(Enterprise)版和旗舰(Ultimate)版等六种版本。 1.2.3 主要特点 Windows的主要特点有:面向对象、消息/事件驱动、多任务、与设备无关的图形设备接口。Windows编程也有与此对应的特点: 1,面向对象 在Windows中,窗口、菜单、事件皆是对象,而对话框与各种控件只是一些特殊的窗口,所以对界面元素的操作和消息/事件的处理都涉及到对象。这些对象的属性和操作,由API的数据结构和函数(或由MFC和.NET框架中的类)提供。因此,Windows编程一般都采用面向对象的程序设计(Object Oriented Programming,OOP)语言工具和类库,如Visual C++的MFC和Visual C# 与.NET的框架类库FCL。 2,消息/事件驱动 在字符界面型OS(如DOS)中执行应用程序时,程序必须取得CPU的控制权,整个 8 运行过程都由程序本身来控制,称之为过程驱动的程序结构。而对GUI型OS(如Windows),情形则完全不同:在应用程序的运行过程中,大部分时间是由OS掌握控制权,只是在发生用户或系统事件(如移动鼠标、按下键盘、选择菜单,或发生时钟、通信事件)后,OS才调用程序中的对应事件处理模块,所以称之为事件驱动的程序结构。在GUI型OS中,事件发生后会产生对应的消息,消息提供了应用程序与OS之间、应用程序与应用程序之间的通信手段;多数应用程序的大部分代码都是用来响应和处理这些消息,所以也可称之为消息驱动的程序结构。 Windows 维护着一个系统消息队列,Windows也为每个应用程序创建一个应用消息队列,事件所产生的消息,首先进入系统消息队列,然后再被传送到对应的应用消息队列,最后才被发送到消息所对应的窗口,参见图1-3。 用户操作 窗口函数1 应用程序 系统事件 应用消息队列 消息处理 函数 窗口函数n 系统消息队列 窗口函数1 应用程序 应用消息队列 消息处理 函数 窗口函数n 图1-3 Windows消息处理 3,资源共享与数据交换 操作系统负责计算机的资源管理,资源包括:CPU、内存、I/O设备等。标准的MS-DOS程序在运行时,可独占计算机的所有资源。但由于Windows是一种(抢先式)多任务操作系统,所以Windows应用程序必须和正在运行的其他程序共享这些资源。因此在进行Windows程序设计时,必须时刻记住资源共享这一多任务OS的特点,以避免耗尽资源而造成系统死机。多任务操作系统Windows提供了多种手段在应用程序与系统之间、应用程序与应用程序之间进行数据交换与共享,如剪接板(Clipboard)和动态数据交换(Dynamic Data Exchange,DDE)。 9 4,与设备无关的GDI Windows为应用程序提供了丰富的与设备无关API,免去了为不同的I/O设备编写软件的不同版本之烦恼。如利用与设备无关的GDI,应用程序使用同一函数,可在不同的显卡、打印机和显示器上输出同一个图形。 1.2.4 系统构成 内核、用户和GDI为传统Windows的三大子系统(subsystem)。内核(Kernel)负责内存和进程管理、数据I/O和中断处理等;用户(User)负责界面的窗口管理和消息处理等;GDI(Graphics Device Interface,图形设备接口)则负责与设备无关的图形绘制和文本显示等。它们所对应的系统文件分别为Kernal32.dll、User32.dll和Gdi32.dll。 Windows NT由内核模式(Kernel Mode)和用户模式(User Mode)两层构成,内核模式包括硬件抽象层(Hardware Abstraction Layer,HAL)、驱动程序、微内核(microkernel)和若干执行程序(executive)等,用户模式则包括系统支持进程、服务进程、应用程序和环境子系统等,参见图1-4。 在Windows操作系统的新版本Windows Vista和Windows 7中,又引入了.NET框架、DirectX、WPF图形子系统等新内容。 图1-4 Windows NT架构(其中的彩色部分为执行程序) Lsass = Local security authentication server,本地安全验证服务器 10 POSIX = Portable Operating System Interface(for UniX),(Unix的)可移植操作系统界面 DLL = Dynamic Link Libraries,动态链接库 1.2.5 图形子系统 Windows的图形子系统经历了GDI、GDI+ 和WPF三个发展阶段。 1,GDI 传统的GDI(Graphics Device Interface,图形设备接口)是微软随Windows 1.0(1985年11月)推出的Windows基本图形子系统,用于与显卡和显示设备无关的图形界面编程,支持WYSIWYG(What You See Is What You Get,所见即所得)。 2,GDI+ 新式的GDI+是随Windows XP(2001年10月)推出的GDI的改进版,增加了α混色、渐变画刷、样条曲线、矩阵变换、图像处理、持久路径等新功能,GDI+也是.NET框架中Windows窗体使用的图形子系统。 3,WPF 随Windows Vista和.NET框架3.0(2006年11月)微软又推出了全新的Windows图形子系统WPF(Windows Presentation Foundation,视窗展示基础),它统一了桌面和浏览器等客户端应用程序的图形界面,基于DirectX和.NET框架,采用声明式XAML进行界面设计,是Windows的下一代GUI显示系统。 XAML(eXtensible Application Markup Language,可扩展应用程序标记语言)是一种基于XML(eXtensible Markup Language,可扩展标记语言,一种由万维网协会定义的通用数据描述语言)的用户界面标记语言,用于定义UI元素、数据绑定、事件和其他特性。 1.3 .NET .NET(网络)是微软提倡的一种操作系统新技术,由(包含运行环境和类库的).NET框架和对应的应用程序开发平台Visual Studio这两部分组成。本节只对.NET技术作一个简 11 单的介绍,更为详细的介绍将在第16章中进行。 1.3.1 .NET框架 .NET框架(.NET Framework)是微软公司 为了与Sun/Oracle公司的Java(EE)竞争,于 2000年6月提出来的一种新的跨语言、跨平台、 面向组件的操作系统环境,适用于Web服务 (Web services)和因特网(Internet)分布式应 图1-5 .NET框架 用程序的生成、部署和运行。.NET框架也是 Windows Vista、Windows 7和Windows 8等新版Windows操作系统的核心部件。 2002年2月微软推出了.NET框架的1.0版,2003年5月推出了1.1,2005年10月推出了2.0,2006年11月6日推出了3.0、2007年11月16日推出了3.5、2008年8月11日推出了3.5 SP1、2010年4月12日推出了4.0,.NET框架的4.5版将于2012年随Windows 8一起推出。 .NET框架由运行环境CLR和类库FCL两个主要部分组成,参见图1-5。 1,公共语言运行库 Common Language Runtime,公共语言运行库)在组件的运行时和开发时的操作CLR( 中都起着很大作用: , 在组件运行时,运行库除了负责满足此组件在其他组件上可能具有的依赖项外,还 负责管理内存分配、启动和停止线程和进程,以及强制执行安全策略。 , 在开发时,运行库的作用稍有变化;由于做了大量的自动处理工作(如内存管理), 运行库使开发人员的操作非常简单。特别是反射等功能显著减少了开发人员为将业 务逻辑转变为可重用组件而必须编写的代码量。 为了程序的安全有效运行,CLR提供了自动内存分配和垃圾内存回收功能,即内存的使用不再像C/C++由程序员负责,而是似Java由系统代为管理。为了区别于传统的Windows运行环境,一般称在CLR环境中运行的.NET程序为托管(managed)应用程序,而称传统的Windows应用程序称为非托管应用程序或本地(local)应用程序。 CLR是CLI(Common Language Infrastructure,公共语言基础设施)在Windows平台上 12 的一种实现。CLI包含CTS(Common Type System,公共类型系统)和CIL(Common Intermediate Language,公共中间语言)两个主要组成部分。其中的CLI已经成为ECMA(European Computer Manufacturers Association,欧洲计算机厂商协会)标准(ECMA-335)和ISO(International Organization for Standardization,国际标准化组织)标准(ISO/IEC 23271)。 2,框架类库 FCL(Framework Class Library,框架类库)为开发人员定义并提供了统一的、面向对象的、分层的和可扩展的类库集,其主要部分是.BCL(Base Class Library,基类库)。通过创建跨所有编程语言的公共API集,公共语言运行库使得跨语言继承、错误处理和调试成为可能。从JScript、Visual Basic到Visual C++、C#、F# 的所有编程语言(通过托管扩展)具有对框架的相似访问,开发人员可以自由选择它们要使用的语言。 相对于贫乏的C++类库和丰富的Java类库,.NET框架类库异常庞大,包含数百个命名空间、数千个类、接口和值类型。该库提供对系统功能的访问,是建立.NE框架应用程序、组件和控件的基础。框架类库采用命名空间来组织和使用,如4.0版的类库提供了440个命名空间,其中用于应用编程的BCL(System型)命名空间有363个。 1.3.2 Visual Studio Visual Studio(VS,可视工作室)是基于.NET框架软件的开发平台,也是.NET的主要组成部分。Visual Studio采用了支持可视编程的集成开发环境。 1,语言工具 在VS中集成了Visual C++、Visual C#、Visual Basic、Visual J# 和Visual F# 等编程语言,也支持脚本语言Jscript和若干动态语言。其中,Visual C++(VC)和Visual Basic(VB)是Windows应用程序的传统开发工具,二者于1993年2月随Visual Workbench 1.0推出;C# 则是微软公司于2000年7月专门为.NET创造的一种类似于Java的编程语言,Visual C# 2002年2月随VS.NET 1.0一起于正式推出;Visual J# 是2003年5月随VS.NET 2003推出的一种Java的变种,是原来VS 6.0所含Visual J++的发展,后来从VS 2008开始又被从VS中去除;Visual F# 是VS 2010引进的一种函数式编程语言;JScript则是JavaScript的微软变种。VS 2010还增加了对动态语言Ruby(红宝石)和Python(巨蟒)的支持,微软公司 13 在其网站和上提供了支持.NET编程的免费开源版本IronRuby和IronPython。 各种.NET编程语言中,C# 与.NET结合得最为紧密,是.NET的首选语言,实际上C# 本身就是专门为.NET设计的;微软一贯重视Visual Basic,在.NET中也不例外,所以在帮助文档中,往往只有C# 和VB的例子,而没有VC的。不过从VS 2008 SP1起,微软公司又开始给予VC以一定的重视。 2,版本 Visual Studio的版本(Version)发展: , 1993年2月Visual Workbench(可视工作台) 1.0。 , 1993年12月Visual Workbench 1.5。 , 1994年9月Visual Workbench 2.0。 , 1995年7月Developer Studio(开发者工作室) 4.0。 , 1997年1月Visual Studio(可视工作室) 5.0 (97)。 , 1998年6月Visual Studio 6.0 (98)。 , 2002年1月Visual Studio.NET (7.0)。 , 2003年5月20日Visual Studio.NET 2003 (7.1)。 , 2005年11月7日Visual Studio 2005 (8.0)。 , 2007年11月16日Visual Studio 2008 (9.0)。 , 2008年8月11日Visual Studio 2008 SP1 (9.0 SP)。 , 2010年4月12日Visual Studio 2010(10.0),中文版于2010年6月1日推出。 , 2011年3月3日Visual Studio 2010 SP1(10.0 SP) , 2012年?月,日Visual Studio 11(支持Metro界面编程) 图1-6是若干不同版本的Visual Studio的界面。 14 a) 6.0英文版 b) 2008中文版 c) 2010中文版 图1-6 Visual Studio的界面 Visual Studio被分成若干具体版本(Edition): , 6.0:标准(Standard)版、专业(Professional)版、企业(Enterprise)版。 15 , .NET (2002)/ 2003:学院(Academic)版、专业版、企业开发(Enterprise Developer)版、企业架构(Enterprise Architect)版。 , 2005/2008:速成(Express)版、标准版、专业版、团队套件版(Team Suite)。 , 2010: , 客户版本(Client Editions):专业版、高级(Premium,白金)版、旗舰 (Ultimate,终极)版、测试专业(Test Professional)版。 , 服务器产品(Server Products):团队基础服务器(Team Foundation Server) 、实验室管理(Lab Management)版。 版 本书采用Visual Studio 2010中文旗舰版作为教学版本,主要内容为Visual C++ / MFC .NET编程。 和Visual C# / 1.4 Windows编程工具 Windows是PC机的主流操作系统,使用非常广泛,开发工具众多。本书选择Visual C++的MFC进行传统的Windows应用程序开发,选择Visual C# 进行现代的.NET托管应用程序开发。 1.4.1 编程语言与开发环境 世界上曾经出现和正在使用的编程语言有数百种之多,除了机器语言和汇编语言等低级编程语言外,最常用的是各种命令式高级编程语言(如Fortran、Basic、Pascal、C),其中主流的是OOP语言(如C++、Java、C# 等)。随着Web网络的兴起和普及,多种简单实用的脚本语言(如JavaScript、PHP、Perl、Ruby等)也开始流行起来。 早期的语言工具的主体基于命令行的编译器(如MS C),后来才出现直观易用的集成开发环境(如Turbo Pascal)和基于软件模块拖放组合的可视编程工具(如Visual Basic和Delphi)。 1,流行的编程语言 据统计,目前(2011年9月)世界上最受欢迎的编程语言工具依次为:Java、C、C++、C#、PHP、Objective-C、(Visual) Basic、Python、Perl、JavaScript、Ruby和Delphi等(参见网页)。其中: 16 , PHP(PHP: Hypertext Preprocessor,超文本预处理器,递归缩写)和Perl(Practical Extraction and Report Language,实际抽取与报表语言)是用于服务器端网络编程的 脚本语言。 传统 , Python(巨蟒)是一种功能强大而完善的面向对象的解释性通用动态编程语言。 , Ruby(红宝石)是一种语法简单、方便快捷、且功能强大、面向对象的通用动态 脚本语言(主要用于服务器端的网络编程)。 , JavaScript(爪哇脚本)是一种用于客户端(服务器)网页编程的最主要脚本语言。 , Objective-C(对象C)是一种带自反射的面向对象的动态弱类型编程语言,它在C 语言的基础上增加了源于Smalltalk的消息传递风格,主要用于苹果公司的Mac OS。 2,开发环境 高级语言的编程环境经历了命令行、集成开发环境和可视编程环境三个阶段。 1)传统开发过程 传统语言工具的开发过程基于命令行,分别进行编辑、编译、连接和调试,每步都要返 回命令行状态,非常麻烦和低效。具体步骤如下: (1) 编辑:从命令行运行文本编辑器编写源程序,并将其存盘到源文件(*.FOR/*.PAS/ *.C/*.CPP/*.java);退出文本编辑器,返回命令行; (2) 编译:从命令行运行该语言的编译器,编译源文件(有的编译器需要两道三次扫描 才能完成编译),生成目标文件(*.OBJ);若有语法错误, 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 出错信息,返回步 骤1,修改错误后再来编译; (3) 连接:从命令行运行连接器,从目标文件生成可执行文件(*.EXE);若有连接错 误,返回步骤1与2,修改错误并编译后再来连接; (4) 调试:从命令行运行可执行程序;若有运行或逻辑错误,返回步骤1、2与3,修 改错误并编译连接后再来调试;且不能进行动态调试(中途查看/修改变量和参数)。 早期的Fortran、Parscal、MS C/C++和现在的Java SDK等都属于这种类型。 2)集成开发环境 集成开发环境(Intergrated Development Enviroment,IDE)是一种集编辑、编译、连接、 调试于一体的具有图形人机界面的软件开发平台。软件的整个开发过程都在同一环境下进 行,不必像传统开发那样频繁进出不同的程序。而且,在IDE中,可调整各种(编辑/编译/ 17 连接)参数,各个步骤所产生的信息可相互利用和自动链接对应,并能进行动态调试(中途查看/修改变量和参数)。 世界上首个IDE雏形是美国Dartmouth学院的John Kemeny和Thomas Kurtz设计的Dartmouth BASIC,于1964年6月运行在DTSS(Dartmouth Time Sharing System,达特默思分时系统)上。最早的流行IDE是1983年11月由Borland公司的Anders Hejlsberg和Philippe Kahn开发的Turbo Pascal,它是PC机开发工具发展的一个里程碑。早期Borland公司的Turbo C/C++、Borland C++和微软公司的Visual C++等也都属于这种类型。 )可视编程环境 3 可视编程(Visual Programming,VP) 环境的主要特点是“控件组装”,采用基于组件和分段程序的快速应用开发 (Rapid Application Development,RAD)方法,是CASE 最高阶段是(Computer-Aided Software Engineering,计算机辅助软件工程)的较高级阶段(自动程序设计)。在VP环境中,程序员通过界面元素进行交互式程序设计,可利用拖放操作来创建用户界面,具有智能感知和自动生成功能,可避免直接书写大量源代码。 现在微软公司Visual Studio中的Visual Basic、Visual C# 、Visual C++和Borland公司Developer Studio中的Delphi、C++Builder、JBuilder、C# Builder等语言工具的编程环境都属于这种类型。 最典型也是最流行的VP开发环境,是微软公司的Alan Cooper于1991年4月设计的Visual Basic和Borland公司的Anders Hejlsberg于1995年开发的(基于Pascal语言的)Delphi(特尔斐, 希腊古都, 因太阳神阿波罗Apollo的神殿而著称)。 1.4.2 Windows编程 Windows编程从C语言的面向过程的API编程,到Borland C++(OWL)、Visual C++(MFC)、Visual Basic和Delphi的面向对象的类库(组件)编程,再到Visual C#、Visual Basic.NET、Visual J#、MC++、C++/CLI和Visual F# 等面向.NET(框架类库)的(组件)编程,经历了三个发展阶段。 1,发展简历 由于当时还没有发明C++,最早的Windows系统是用汇编、C和Pascal语言编写的(现在则主要用C++),所以C语言是传统Windows操作系统的首选语言(现在是C++ 和C#)。 18 因此,Windows程序员最初都是用C语言(主要是微软无IDE的MS C,)直接调用Windows SDK(Software Development Kit,软件开发工具包)中的Windows API(Application Program Interface,应用程序接口)来编写Windows应用程序,非常繁琐困难。 1991年5月,Tripod(三脚架)公司的Alan Cooper按微软公司的要求,将Basic语言嵌入他自己开发的可视编程环境“Ruby”中,为Windows 3.0推出了了世界上第一个流行的可视编程软件Visual Basic for Windows 1.0。因此,有人称Alan Cooper为VB之父。VB可以利用拖放(drag and drop)设计来创建用户界面,这在当时引起了很大的轰动,许多专家把VB的出现当做是软件开发史上的一个具有划时代意义的事件。 Borland公司将买下White Water的 C++ Framework(框架)改名为OWL(Object Windows 了以OWL为核Library,对象视窗库,一种Windows API的C++类库),于1992年6月推出 心的Borland C++ 3.1,支持Windows的OOP编程,且并带有直观易用的IDE,受到Windows程序员的热情追捧。 微软公司早在1992年2月,就随MS C/C++ 7.0推出了Windows API的C++类库MFC 1.0,但是由于没有IDE和应用程序框架,受到程序员们的冷落。直到1993年2月随(Visual Studio的前身)Visual Workbench 1.0推出了Visual C++ 1.0和MFC 2.0,微软才有了自己的C++ IDE和应用程序框架,并逐渐被程序员所接受。 由于微软公司利用自己在PC机操作系统上的垄断优势,将它的新推出的OLE和COM等组件技术,集成到它自己的开发工具中,而对Borlan等其他公司保密。因此,Visual C++和Visual Basic才得以取代Borland C++在Windows编程中的霸主地位。 Borland公司并不甘心,Anders Hejlsberg于1995年开发出了嵌入Pascal语言、基于组件的可视编程工具Delphi,它比VC更好用、比VB的功能更强大、长于数据库连接,受到了Windows程序员的热烈欢迎,可与微软的VB和VC分庭抗礼。Delphi使用了VCL(Visual Component Library,可视组件库)开发框架,(似MFC和OWL)VCL 也采用面向对象技术对Windows的开发进行了封装,使用PME(Property/Method/Event,属性/方法/事件)的开发模式,极大的提高了开发效率,是一种著名的RAD工具。 1995年5月Sun公司推出了由James Gosling等人开发的一种跨平台、面向对象、适应网络环境的全新编程语言Java,彻底改变了Windows开发工具的格局。虽然Java的GUI功能相对薄弱,但是其在网络编程,特别是(借助于Java EE和JSP)在Web服务器端的企业级编程方面却取得了巨大成功。Java语言的简单、安全、跨平台的特性,更是深入人心。 Borland公司的Anders Hejlsberg,看到了Java的优点与成功,同时也发现了Java的缺 19 点和不足。为了安全和跨平台,Java采用了字节码和虚拟机,程序须经过解释才能执行,大大降低了Java程序的运行效率。虽然Java EE和JSP的组件功能强大,但是Java语言本身并不具备组件功能,而且用Java编写的组件也很难与其他语言开发的软件模块集成在一起。因此,Anders Hejlsberg想开发一种新的编程语言和环境,来弥补Java的不足。但是,当时Borland公司的新老板,鼠目寸光,不同意Anders的请求。一气之下,Anders Hejlsberg于1996年跳槽到了微软公司,并于1997年开发出了Java的变体Visual J++。由于Sun公司以微软违约之名,取消了其Java的使用权,逼得微软公司必须另辟蹊径。 、面向组2002年2月,微软公司推出了由Anders Hejlsberg领导开发的跨语言、跨平台件的运行环境——.NET框架和简单现代、面向对象、类型安全、运行高效的编程语言——C#。C# 是Java的改进和发展,C# 继承了Java的几乎所有优点,而且还提高了程序的运行效率、提供了语言级的组件功能、改进了软件的GUI功能。.NET框架不仅继承了Java运行环境跨平台的特点(虽然这一点目前使用得并不广泛),而且还首次实现了跨语言,特别是其最初的设计就是面向组件编程的。在.NET环境下,不同语言开发的各种软件模块,可以很容易地集成在一起。到此,Anders Hejlsberg才真正实现了他的设计和梦想,微软公司的开发平台和编程工具也因此发展到了一个全新的阶段。 上面提及的各种工具,使用的都是传统命令式编程(Imperative Programming,IP)语言,是面向机器的。而函数式编程(Functional Programming,FP)语言则是人性化和数学化的,面向的是懂数理逻辑的人。FP语言最重要的基础,是λ演算中的λ表达式。 相比于IP语言,FP语言更高级、更智能,更能适应各种功能的变化,而不必反复修改语言的语法。例如C# 为了引入泛型编程,推出了改变很大的2.0版;为了引入LINQ(Language Integrated Query,语言集成查询),在3.0版中增加了新的语法结构;为了适应动态类型和PLINQ(Parallel LINQ,并行LINQ)与TPL(Task Parallel Library,任务并行库)等多核并行技术,微软又对C# 进行了修改,推出了4.0版。 F# 是由微软的Don Syme等人于2002年开始研发的一种FP语言,具有面向语言、面向对像、面向多核开发、全面支持.NET框架等特色,是一种数学化、高效、可与 C/C++/C# 和.NET平台交互的函数式编程语言。2005年微软推出了F# 的1.0,F# 2.0将被集成在Visual Studio 2010中。F# 可能使FP彻底走出传统的科学研究领域,而走向通用软件开发的广阔天地,也能使Windows编程进入一个更高的阶段。 随着动态脚本语言(尤其是在服务器端的网络编程中)的盛行,微软公司将Python和Ruby语言移植到Windows的.NET平台上,推出了支持.NET框架编程的IronPython和 20 IronRuby,并在Visual Studio 2010中提供了对它们集成的支持。 2,常用工具 下面按主要出品公司列出若干Windows通用软件编程的常用语言工具: , Microsoft公司(Microsoft Visual Studio) , Visual Basic(简称为VB):Microsoft公司于1991年开始推出,基于Basic语言, 支持可视化编程。VB简单实用,采用组件式模块构建,属于用户级编程工具。但 是VB的功能有限、灵活性较差,而且Basic无统一的国际标准、VB的语法随版 本变化大、兼容性差(如VB.NET和传统的VB就安全不兼容)。所以,VB只适 用于小型和简单的Windows应用软件编程。 Guido van , Visual C++(简称为VC):Microsoft公司于1993年开始推出的一 Rossum 种面向对象的Windows集成开发工具,基于标准C++语言,适用 于系统软件和大型应用软件的传统Windows编程。 , Visual C#:C# 是Microsoft公司为.NET设计的一种面向对象的编程语言,源自 C++,与Java类似,是.NET编程的首选语言,2002年随Visual Studio .NET开始 推出。 , Visual F#:F# 是由微软的Don Syme等人于2002年开始研发的 一种使用类型推理(type inference)的强类型(strongly typed) Jim Hugunin 多范式(multi-paradigm)、面向.NET的函数式编程语言,它是重 要的非纯FP语言ML(MetaLanguage,元语言)的变体,与流行的面向对象的通 用FP语言OCaml(Objective Categorical Abstract Machine Language,对象类型抽象 机语言)的实现大致兼容。2005年推出F# 的第一个版本、2007年7月31日推出 1.9.2.9版、2009年5月20日推出1.9.6.16版。2010年4月12日随Visual Studio 2010 发布了F# 2.0,已被集成在Visual Studio 2010中,含有对.NET框架的完全支持。 , IronPython:Python(巨蟒)是一种功能强大而完善的面向对象的 解释性通用编程语言。由(荷兰人)Guido van Rossum于1989年 12月开始设计(一种类脚本语言),是从(Guido 参加设计的一种 优美强大针对非专业程序员教学语言)ABC发展而来,主要受到 了Modula-3(另一种相当优美且强大的语言,为小型团体所设计 Don Syme 21 的)的影响,并且结合了Unix shell和C的习惯。于1991年推出1.0,2000年10 月16日推出2.0,2008年12月3日推出3.0。由于3.0不能向后兼容2.0,所以又 于2008年10月1日推出了兼容2.0的2.6版。当前Python的最新版本为2010年 11月27推出的3.1.3和2.7.1。Python语言的特色是解释性、跨平台、可扩展、清 晰、缩进等。IronPython是Python针对.NET框架的实现,由微软的Jim Hugunin 用C# 开发,2006年9月5日推出1.0版、2008年12月10日推出2.0版、2010 年4月12日与Visual Studio 2010同步发布了2.6.1版,当前最新版本为2010年10 月21推出的2.6.2,可在微软公司的网站上下载其免 费开源版本。Python语言在Java平台的实现为Jython,也是由Jim Hugunin开发的。 Ruby(红宝石)是一种语法简单、方便快捷、且功能强, IronRuby: 大、面向对象的通用脚本语言(主要用于服务器端的网络编程)。由 (日本人)松本行弘开发,于 1995年12月正式发布,当前的最新 版本为2010年8月18日推出的1.9.2-p0。Ruby的灵感与特性来自 于Perl、Smalltalk、Eiffel、Ada以及Lisp语言。Ruby语言的特点有:完全面向对 象(任何东西都是对象,没有基本类型,似JavaScript)、变量没有类型(也似 JavaScript)、任何东西都有值、按规则命名数据类型、已定义的类可以在运行时修 改等。IronRuby(铁红宝石)是Ruby语言的一种针对.NET框架的实现,由微软公 司的DLR(动态语言运行时)小组开发,于2007年4月30日宣布,并于2010年 4月12日与Visual Studio 2010同步发布了IronRuby 1.0,可在微软公司的网站 上下载其免费开源版本。Ruby语言在Java平台 的实现为JRuby。 , Borland公司(Borland Developer Studio) , Delphi:Borland公司于1995年推出一种可视编程工具,内嵌语言为Pascal,数据 库/服务器编程能力较强。 , C++Builder:Borland公司于1991年推出Borland C++(OWL),1997年推出基于 松本行弘 组件的RAD环境C++Builder,特点类似VB与Delphi,只不过使用 的是C++语言。 , JBuilder:Borland公司于1995年推出的针对Java开发的可视编程工具。 , C# Builder:Borland公司于2003年推出的.NET开发工具,最大的技术特点是内置 了Janeva技术,能够无缝连接.NET和Java EE之间的应用。 22 , Sun/Oracle公司(Java) , Java:Sun公司(2010年1月27日被Oracle公司收购)于1995年推出的一种跨平 台的面向对象的编程语言,主要用于网络编程,特别是Web服务器端(Java EE/JSP)。附注:Microsoft公司曾于1998年随Visual Studio 6.0推出了Java的变种 Visual J++,并于2003年随Visual Studio .NET 2003又推出了支持.NET编程的Visual J#,但是从Visual Studio 2008起Visual J# 已经被从Visual Studio中去掉。 1.4.3 语言工具的选择 每个操作系统都有自己的系统级首选语言,如DOS的Basic、Unix的C/C++、Windows的C/C++、.NET的C#。而Windows应用程序的种类繁杂,开发中可用的语言工具众多,需要程序员做出恰当的选择。但有一点必须明白:从来就没有能包打天下的最佳语言,只有针对不同操作系统平台和某类具体应用程序的最合适工具。 1,首选语言工具 下面列出的是针对若干不同Windows软件类型的首选开发语言工具(只是作者的观点): , 小型应用软件:Visual Basic。 , 网络/安全软件:Java。 , Web/XML软件:Java / Visual C#。, 大型/系统软件:Visual C++。 , .NET软件:Visual C#。, 数据库通用软件:Delphi / PowerBuilder。 2,本书的选择 由于本书的主要目的是介绍Windows环境下客户端的图形用户界面的编程,而Java的软肋却正是缺少高效统一的GUI工具包,所以本书不准备介绍如何使用Java进行Windows编程。对这方面有兴趣的读者,可以参考其他有关书籍。 鉴于Windows是一个非开放的操作系统,而Visual Studio又是微软公司专门为Windows量身订做的开发平台,具有绝对的垄断优势,所以本书选择VS作为开发平台。但VS提供的开发语言工具很多,而大家的时间和本书的篇幅又非常有限,所以必须作出适当的选择。 VB小巧易用,非常适用于小型应用软件的开发,但是他缺少灵活性,功能不够强大,不适合于大型商用软件的开发。而且VB是一种非程序员的用户级编程工具,本书不予介绍。函数编程语言F# 虽然非常先进,但是还不够成熟,缺少实践的验证,本书也暂不讨论。 23 IronPython和 IronRuby缺少IDE的支持,本书也不介绍。 本书选择Visual C++中的MFC作为传统Windows应用程序的开发工具,选择.NET的 .NET环境下Windows应用程序的开发工具。 首选语言Visual C# 作为 虽然微软公司极力提倡.NET技术,而且将.NET框架作为其新版操作系统Windows Vista和Windows 7的核心部件,但是目前大多数在用的传统Windows版本(如2000/XP)中,并没有默认安装.NET运行环境。而且由于.NET对硬件要求高,运行速度较慢,所以非.NET环境的传统Windows应用程序的市场现在仍然很大。 工具中,只有用Visual C++才能编写传统的Windows在Visual Studio提供的各种语言 应用程序。另外,VC也是VS中唯一的一种可以同时[混合]编写非托管(API与MFC/ATL)程序和托管(.NET)程序的工具,而VS中的其他语言工具(如C#、VB和F# 等)则只能编写.NET环境下的托管程序,参见图1-7。所以,本书的重点,是介绍Visual C++的MFC传统Windows应用编程。 传统应用程序 托管应用程序 Java应用程序 Visual C#、Visual Basic、 Visaul F#、JScript、 Visual C++ Java Delphi、(含MC++或C++/CLI) IronPython、IronRuby、 C++Bulder、C# Builder、„„ MASM、„„ C++类库 .NET框架类库(FCL) JFC/EJB (MFC/ATL) .NET运行环境(CLR) JVM 应用程序接口(Win32/64 API) 操作系统(Windows) 计算机硬件(PC机) 图1-7 Windows编程环境 其中,粗体部分属于Visual Studio、斜体部分属于.NET框架。 ATL(Active Template Library,活动模板库)是一套基于模板的C++类,可用来创建小型、快速的COM组件对象。 复习思考题 1. 给出GUI的英文原文和中文译文。 2. GUI由哪两部分构成, 3. Windows及其编程的主要特点有哪些, 4. 给出过程驱动和消息/事件驱动程序之间的差别。 5. Windows中有哪两种消息队列,给出Windows的消息处理过程。 24 6. 列出Windows操作系统的三个传统子系统及其功能。 7. Windows的图形子系统经历了哪几个阶段,各有什么特点, 8. 给出GDI和WPF的英文原文和中文译文。 9. 给出.NET和.NET框架的构成。 10. 为什么称.NET环境下运行的程序为托管程序, 11. Visual Studio中提供了哪些语言工具, 12. 给出IDE、VP和RAD的英文原文和中文译文。 13. 目前世界上最流行的编程语言有哪些, 14. 给出SDK和API的英文原文和中文译文。 15. 列出各类Windows软件开发的首选语言工具。 练习题 1( (大作业选题,GUI)探讨GUI的特点和发展,对比Mac OS、X-Window、Windows、 KDE和GNOME 等。比较Windows的GDI、GDI+和WPF等图形子系统。 2( (大作业选题,语言工具)讨论编程语言工具的选择(例如Java、Delphi、C++ Bulider、 VC、VB、C#、J#、F#、PHP、Perl、Python、Ruby、JavaScript、JScript、VBScript、PowerBuilder、 MatLab等等)。 25
本文档为【课程:Windows高级编程及实践 性质:专选 学时:3_18 = 54 学分】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_721103
暂无简介~
格式:doc
大小:165KB
软件:Word
页数:38
分类:生活休闲
上传时间:2018-04-28
浏览量:14