windows编程 01绪论.docx
- 文档编号:23492424
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:30
- 大小:433.57KB
windows编程 01绪论.docx
《windows编程 01绪论.docx》由会员分享,可在线阅读,更多相关《windows编程 01绪论.docx(30页珍藏版)》请在冰豆网上搜索。
windows编程01绪论
Windows编程技术
课程:
Windows编程技术性质:
限选学时:
(2+2)*18=36+36学分:
2+1
教材:
本人的《Windows编程技术》电子课件
参考书:
陈锵等.VisualC++2005从入门到精通(普及版).电子工业出版社,2007.5.(16开/416页/40元)
IvorHorton(姜玲玲、张云译).VisualC++2008入门经典.清华大学出版社,2009.2.(16开/1124页/128元)
H.M.Deitel等.VisualC++.NET大学教程.清华大学出版社,2004.7.(16开/970页/99元)
GeorgeShepherd&DavidKruglinski.MicrosoftVisualC++.NET技术内幕.清华大学出版社,2004.7.(16开/920页/106元)
陈锵等.VisualC#2005从入门到精通(普及版).电子工业出版社,2007.5.(16开/399页/38元)
J.Shap.VisualC#2008从入门到精通.清华大学出版社,2009.1(16开/586页/69元)
A.Hejlsberg等.C#编程语言祥解(第2版).电子工业出版社,2007.8.(16开/716页/79元)
A.Troelsen.C#与.NET3.5高级程序设计(第4版).人民邮电出版社,2008.5.(16开/1107页/138元)
A.Nathan.WPF揭秘.人民邮电出版社,2009.3.(16开/486页/75元)
B.Eckel.Java编程思想(第四版).机械工业出版社,2007.6(16开/880页/108元)
课件:
在中大计算机系服务器上我的个人主页中(
成绩:
考勤答问5%+讲座5%+平时作业15%+大作业15%+期末考试60%
教学目的与课程要求:
了解Windows编程的特点与VisualStudio开发平台,掌握VisualC++的MFC和VisualC#的.NET编程,基本掌握图形用户界面和若干实用的Windows编程技术。
为今后的计算机各专业课程的软件实验,提供编程界面友好程序的现代工具与手段。
课程的内容主要包括:
用户界面、图形、文档视图等MFC基础编程,标准C++与STL、Java、C#等OOP语言的语法和特点,.NET框架、FCL类库、窗体、WPF、WCF、WF、LINQ等.NET编程技术,以及GDI+、DLL、组件、多线程、多核、数据库、网络等高级程序设计。
在教学过程中强调基本性质的了解、具体方法的掌握和实际动手能力的培养。
采用课堂讲解与现场演示相结合、理论课与实验课相结合、平时练习和综合作业相结合的方式,使学生掌握Windows编程的基本内容和主要方法。
除了MFC基础编程由老师讲解外,其余的课程内容都采用按专题要求学生分小组先预习并准备PPT、在课堂上由学生演讲、老师与学生共同讨论的方式来进行。
特别强调学生自己动手上机实习,要求编程实现课堂示例和课后练习。
最后学生分小组每组自选一个相关题目作为综合性编程的大作业,并于期末在课堂上进行演示和答辩。
课程内容:
●绪论:
操作系统与GUI、Windows编程的特点与工具、VisualStudio开发平台与MFC
●MFC基础:
⏹界面:
菜单、工具栏和状态栏、对话框和控件、鼠标/键盘与消息、功能区用户界面、选项卡式多文档界面
⏹图形:
绘图、字体、位图、动画、打印、图元文件
⏹文档:
文档视图体系、文件读写与序列化、多视图、滚动与切分窗口
●OOP语言:
⏹OOP语言与编程技术
⏹标准C++:
命名空间、泛型编程与STL、容器与排序、字符串类、VC08功能包中标准C++库的新功能(支持引用计数的智能指针、多态函数包装、基于哈希表的容器、正则表达式等)
⏹Java:
特点、关系、语法
⏹C#:
特点、关系、语法
●DLL与组件:
⏹DLL的MFC编程
⏹组件编程:
CORBA、EJB与JavaEE、COM与ActiveX控件、CLR组件编程
●.NET:
⏹NET框架:
CLR与FCL
⏹MC++与C++/CLI
⏹C#窗体编程
⏹WPF和LINQ编程
●高级编程技术:
⏹GDI+:
GDI+的特点和优势、绘图与文字、路径与区域、变换与图像
⏹多线程与多核编程:
进程与线程、MFC/.NET/Java的进程与线程编程、超线程与多核、并行计算、C++的OpenML编程、PPL、TPL和PLINQ
⏹数据库:
数据库与编程接口、ODBC的MFC编程、ADO.NET和LINQ的C#编程
⏹网络:
网络与编程、MFC的WinSock与WinInet编程、.NET环境下的基本网络编程、ASP.NET编程简介
具体的教学内容及授课时间和顺序的安排,见课程教学方案表。
作业要求
●提交的作业内容
⏹说明性文档:
姓名、学号、章节,题目的名称、内容和要求、心得体会。
[对大作业,还有:
使用的算法、方法和技术,程序的模块、功能和使用方法,用户界面、主要对话框和运行结果的图示。
](电子文档,Word格式[*.doc])(说明文档占作业成绩的30%以上)
⏹源程序:
解决方案文件(*.sln)、项目文件(*.vcproj)、头文件(*.h)、代码文件(*.cpp)、资源文件(*.rc)等文件及资源目录res,不要Debug/Release目录(包括其中的可执行文件)和各种中间文件(如*.ncb、*.pch和*.suo等),但是必须包含项目目录和有用的子目录(如资源子目录res)。
总之,提交的内容要以能够正确编译连接产生可执行程序的最少文件为准。
(打包后的文件一般不会超过1MB,不然肯定是包含了不必要的文件)
●提交作业的方式:
⏹将作业打包后作为电子邮件附件,发到我的信箱isscwli@
⏹注意:
◆作业包名应该与作业的内容相关(如“绪论.rar”、“菜单.rar”、“对话框.zip”)
◆应该在邮件正文(或在作业包名)中写明自己的姓名、学号和所提交作业的内容(不需要写出完整的作业题目内容,只需写明作业内容的名称,如“绪论”、“菜单”、“对话框”)
●提交作业的时间:
⏹平时作业:
(一般要求)在布置作业后的一周之内
⏹大作业:
考试之前(3-5人自由组成一个小组,每个小组只做一个大作业,题目由自己任选,只要与课程内容相关即可),需要在期末进行演示和答辩
软件安装说明
●VS08安装说明:
⏹安装软件(可从我的个人网页
◆VisualStudio2008中文专业版软件(VS2008ProEditionCHSX1435983.iso,3.84GB,含帮助文档——MSDNforVisualStudio2008SP1中文版)
◆SP1(VS2008SP1CHSX1512981.iso,898MB,安装文件为\vs90sp1\SPInstaller.exe)。
◆VisualStudio2010RC1英文旗舰版(VS2010Ultimate_RC1.iso,2.25GB,含MSDN)
⏹适用操作系统:
WindowsXPSP2、WindowsServer2003SP1、WindowsVista、WindowsServer2008、Windows7及以上版本。
⏹占用硬盘:
5.8GB~14GB
◆VS08——4.1GB~4.5GB
◆MSDNforVS08SP1——1.7GB~2.4GB
◆VS10——6.0GB
◆MSDNforVS10——1.14GB
⏹安装时间:
VS08和MSDN——1个小时左右(取决于机器的性能、操作系统的种类、硬盘和/或光盘的速度、以及所选装组件的多少)、SP1——半小时左右、VS10和MSDN——半小时左右。
第1章绪论
Windows是PC机的主流操作系统,具有流行的图形用户界面,其图形子系统经历了GDI、GDI+和WPF等三个发展阶段。
.NET是微软所提倡的一种跨语言、跨平台、面向组件的新技术,由包含运行环境和类库的.NET框架和应用程序开发平台VisualStudio两部分组成,前者是新版Windows操作系统WindowsVista和Windows7的核心,后者则是本书所使用的编程环境。
Java、C#、VisualBasic和VisualC++等是Windows的主要编程语言和工具,其中,除了Java是Sun/Oracle公司的产品外,其余都由微软公司的开发平台VisualStudio所提供。
Java是网络编程的首选、C#是.NET编程的首选、VisualC++的MFC则是编写大型和系统Windows程序的传统工具。
本书介绍VisualC++的MFC编程和VisualC#的.NET编程。
MFC是一种应用程序框架,是对WindowsAPI的C++类封装,还提供了消息映射机制和文档视图结构。
C#则是微软专门为.NET开发的一种类似于Java的程序设计高级语言,具有简单、现代、面向对象和类型安全等特点。
本章先介绍操作系统的发展,图形用户界面的组成;再讨论Windows的特点、构成和主要版本,以及Windows的图形子系统的发展;接着简介.NET技术中的.NET框架和VisualStudio;最后给出Windows编程的常用工具和选择。
1.1操作系统与图形用户界面
操作系统经历了控制面板、字符界面、图形界面、多媒体界面等多个发展阶段。
图形用户界面由图形显示设备和指示跟踪设备构成,图形界面元素包括窗口、菜单、工具条、对话框、图标和各种控件等。
Windows的图形子系统,经历了GDI、GDI+和WPF等三个发展阶段。
1.1.1操作系统及其发展
操作系统(OperatingSystem,OS)是计算机硬件和用户之间的接口,负责管理和协调计算机资源的活动和分配,参见图1-1。
最早的计算机没有操作系统,使用控制面板进行手工操作。
有了操作系统后,又经历了批处理、多任务和分布式等多个发展阶段。
图1-1操作系统
操作系统的用户界面(UserInterface,UI),从简单原始的字符界面,发展到直观易用的图形界面,再到人性化的多媒体界面,目前正向智能感知、无处不在的普适计算(PervasiveComputing)的方向发展,参见图1-2。
图1-2操作系统的发展
1.1.2图形用户界面
图形用户界面(GraphicalUserInterface,GUI)是当前各主流操作系统的标准构件。
GUI是计算机的一种人机接口,由图形显示设备(屏幕、投影仪等)和指示跟踪设备(鼠标、跟踪球、光笔/手写笔、触摸屏等)组成,用户可通过指示设备来操作图形设备上的界面元素(窗口、菜单、工具条、对话框、图标、各种控件等)以完成各种工作。
与DOS等基于命令行的字符界面的旧式OS相比,GUI形象直观、使用简单、操作方便、人性化、不需记忆各种命令和参数、应用软件基本功能的操作一致或相似、有大量API(和类库)供程序员调用。
下面列出GUI的发展简史:
●1950年MIT(麻省理工学院)的林肯实验室推出CRT显示器。
●1963年DouglasEngelbart发明鼠标,1968年他又推出视窗与人机界面。
●1972年AlanKay设计出面向对象的Smalltalk语言,首创下拉式菜单,提出GUI概念。
●1973年Xerox(施乐)公司的PARC研究中心推出具有图形用户界面的原型机Alto(男高音/女低音)。
●1984年Apple公司(受Alto的启发)推出Macintosh(胶布雨衣)计算机,率先在商品微机中引入图形用户界面。
●1985年MIT设计出Unix的图形用户界面X-Window。
●1985年Microsoft公司(仿照Macintosh)推出PC机DOS操作系统的图形用户界面Windows;1990年推出的Windows3.0获得成功;1993年推出基于微内核结构的独立操作系统WindowsNT。
●1995年5月微软推出的Windows95中,增加了任务栏和可视主题(visualtheme)——一种包含图形外观细节的预置包,用于定制操作系统、部件集(widgetset)或窗口管理器的外表体验(lookandfeel)。
●1998年和1999年分别发布了由MathiasEttrich和GNU成员开发的运行于Unix以及Linux、FreeBSD等类Unix操作系统上的自由开源桌面环境(GUI)——KDE(KDesktopEnvironment,K桌面环境)和GNOME(TheGNUNetworkObjectModelEnvironment,GNU网络对象模型环境)。
●2001年3月24日推出MacOSX(第10版),引入全新的Aqua(水/溶液/浅绿色)GUI,具有明快的颜色、半透明和光反射的效果、小水滴般的元素、果冻式的按钮等。
●2006年11月8日微软推出的WindowsVista中,包含了(似MacOSXAqua的)Aero(气体/航空/飞行)新用户界面,具有兼具专业感及透明感的磨砂玻璃外观、圆滑的窗口动画、Flip3D窗口等角排列方式、即时缩略图、字体更清晰边缘更平滑的ClearType新字体。
此外,Vista还引入了新型图形子系统WPF。
●2006年11月30日微软在其推出的Office2007中,使用了流畅用户界面(FluentUserInterface),其主体是功能区(ribbon,缎带)——一种用于替代传统的菜单和工具条工具条窗体。
在2008年4月7日推出的VisualC++2008功能包(FeaturePack)中,提供了对基于功能区的UI的编程支持。
功能区UI也被用于Windows7的画图和写字板等其他软件中。
功能区的雏形是1995年NickBradbury为BorlandDelphi开发的网页编辑器HomeSite中的选卡式工具条(tabbedtoolbars),1997年Nick带着HomeSite加入了Allaire公司,2001年Macromedia公司购买了Allaire,并在其DreamweaverMX软件中使用了选卡式工具条,2005年Macromedia又被Adobe公司购买了。
1.2Windows
Windows(视窗)是Microsoft(微软)公司为PC(PersonalComputer,个人计算机)机开发的具有图形用户界面的多任务操作系统,占有90%以上的市场份额。
1.2.1发展历程
早期的Windows并不是一个独立的操作系统,而只是DOS的一个补丁程序。
最初的Windows1.0和2.0,运行于16位的286PC机上,又慢又差,被业界所唾弃。
随着386CPU的推出和微软公司的不断改进,1990年推出的(16位)Windows3.0获得了巨大的成功,后来推出的带浏览器IE的(32位)Windows95/98也得到广泛好评。
但2000年推出的面向家用、强调多媒体的WindowsMe(MillenniumEdition,千年版),由于笨拙、差慢,导致失败,传统DOS外挂GUI模块型的Windows也走到了尽头。
1993年微软开发出基于微内核结构的32位独立操作系统WindowsNT(NewTechnology,新技术),2000年和2001年分别推出基于NT的Windows2000和WindowsXP(eXPerience,体验),大受好评,被广泛使用。
2006年底,微软推出(同样基于NT)的WindowsVista(远景/街景/展望)内含.NET框架和DirectX模块、还引入了全新的WPF图形子系统,具有华丽的Aero用户界面。
但由于Vista对硬件要求高、兼容性差、且速度慢,惨招失败。
微软痛定思痛,对Vista进行了大量的改进,于2009年秋推出了运行效率高、对硬件要求低、而且兼容性好的Windows7,获得了一致好评。
1.2.2主要版本
表1-1列出了Windows的主要版本,包括发布时间、商品名、系统内核版本号、主要特点等基本内容。
其中,Windows的内核分成两大类:
传统的外挂内核(1.0~4.9)和现代的微内核(NT3.1~6.1),前者已被淘汰,新版Windows(如2000、XP、Vista、7)都基于后者。
表1-1Windows的主要版本
发布时间
商品名
版本号
位数
说明
1985年11月
Windows1.0
1.0
16
GUI、GDI、16位、差/慢
1987年11月
Windows2.0
2.0
16
1990年5月
Windows3.0
3.0
16
成功
1992年3月
Windows3.1
3.1
16
多媒体
1992年10月
WindowsforWorkgroups3.1
3.1
16
工作组,本地网
1993年7月
WindowsNT3.1
NT3.1
32
独立、32位、微内核
1994年9月
WindowsNT3.5
NT3.5
32
1995年5月
Windows95
4.0
16/32
32位,IE,任务栏、可视主题
1996年7月
WindowsNT4.0
NT4.0
32
1998年6月
Windows98
4.1
32
2000年2月
Windows2000
NT5.0
32
NT+98,流媒体
2000年10月
WindowsMe
4.9
32
家用,多媒体,失败
2001年10月
WindowsXP
NT5.1
32
GDI+、功能强大,成功
2003年3月
WindowsXP64位版
NT5.2
64
支持IA-64
2003年4月
WindowsServer2003
NT5.2
32/64
服务器版、支持x64和IA-64
2005年4月
WindowsXP专业x64位版
NT5.2
64
支持x64
2006年11月
WindowsVista
NT6.0
32/64
.NET框架、WPF、AeroGUI、支持x64和多核,对硬件要求高、兼容性差、速度慢,失败
2008年2月
WindowsServer2008
NT6.0
32/64
服务器版、支持x64和IA-64
2009年10月
Windows7
NT6.1
32/64
基于Vista、高效、对硬件要求低、兼容性好
为了适应客户端和服务器计算机的不同的需要,Windows操作系统又被划分成普通版与服务器版两大类,前者用Windows命名,后者则用WindowsServer来命名。
随着64位CPU的推出和普及,新版的Windows操作系统一般包含x86、x64和IA64三个版本。
另外,每个Windows版本(version)在销售时,针对不同用户的需求,按其所提供功能的多少,又被分成若干具体的版本(edition)。
如WindowsXP主要有初级版(StarterEdition)、家庭版(HomeEdition)、专业版(ProfessionalEdition)和媒体中心版(MediaCenterEdition),Windows7则有初级(Starter)版、家庭普通(HomeBasic)版、家庭高级(HomePremium)版、专业(Professional)版、企业(Enterprise)版和旗舰(Ultimate)版等六个版本。
1.2.3主要特点
Windows的主要特点有:
面向对象、消息/事件驱动、多任务、与设备无关的图形设备接口。
Windows编程也有与此对应的特点:
1.面向对象
在Windows中,窗口、菜单、事件皆是对象,而对话框与各种控件只是一些特殊的窗口,所以对界面元素的操作和消息/事件的处理都涉及到对象。
这些对象的属性和操作,由API的数据结构和函数(或由MFC和.NET框架中的类)提供。
因此,Windows编程一般都采用面向对象的程序设计(ObjectOrientedProgramming,OOP)语言工具和类库,如VisualC++的MFC和VisualC#与FCL。
2.消息/事件驱动
在字符界面型OS(如DOS)中执行应用程序时,程序必须取得CPU的控制权,整个运行过程都由程序本身来控制,称之为过程驱动的程序结构。
而对GUI型OS(如Windows),情形则完全不同:
在应用程序的运行过程中,大部分时间是由OS掌握CPU控制权,只是在发生用户或系统事件(如移动鼠标、按下键盘、选择菜单或时钟、通信)后,OS才调用程序中的对应事件处理模块,所以称之为事件驱动的程序结构。
在GUI型OS中,事件发生后会产生对应的消息,消息提供了应用程序与OS之间、应用程序与应用程序之间的通信手段;多数应用程序的大部分代码都是用来响应和处理这些消息,所以也称之为消息驱动的程序结构。
Windows维护着一个系统消息队列,Windows也为每个应用程序创建一个应用消息队列,事件所产生的消息,首先进入系统消息队列,然后再被传送到对应的应用消息队列,最后才被发送到消息所对应的窗口,参见图1-3。
图1-3Windows消息处理
3.资源共享与数据交换
操作系统负责计算机的资源管理,资源包括:
CPU、内存、I/O设备。
标准的MS-DOS程序在运行时,可独占计算机的所有资源。
但由于Windows是一种抢先式多任务操作系统,所以Windows应用程序必须和正在运行的其他程序共享这些资源。
因此在进行Windows程序设计时,必须时刻记住资源共享这一多任务OS的特点,以避免耗尽资源而造成系统死机。
多任务操作系统Windows提供了多种手段在应用程序与系统之间、应用程序与应用程序之间进行数据交换与共享,如剪接板(Clipboard)和动态数据交换(DDE=DynamicDataExchange)。
4.与设备无关的GDI
Windows为应用程序提供了丰富的与设备无关API,免去了为不同的I/O设备编写软件的不同版本之烦恼。
如利用与设备无关的GDI,应用程序可使用同一函数,可在不同的显卡、打印机和显示器上输出同一个图形。
1.2.4系统构成
内核、用户和GDI为Windows的传统三大子系统(subsystem)。
内核(Kernel)负责内存和进程管理、数据I/O和中断处理等;用户(User)负责界面的窗口管理和消息处理等;GDI(GraphicsDeviceInterface,图形设备接口)负责与设备无关的图形绘制和文本显示等。
它们所对应的系统文件分别为Kernal32.dll、User32.dll和Gdi32.dll。
WindowsNT由内核模式(KernelMode)和用户模式(UserMode)两层构成,内核模式包括硬件抽象层(HardwareAbstractionLayer,HAL)、驱动程序、微内核(microkernel)和若
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- windows编程 01绪论 windows 编程 01 绪论