从我第一次看到WINDOWS就对它那花花绿绿的外表所吸引,大学两年过来,时间又让我从另一个角度重新认识的了这些美丽的图片。本学期开始图形编程的学习,探索WINDOWS图形系统,并对GDI API,DirectDraw API进行学习。
之所以写博客,第一、是想勉励自己不断学习,让大家监督;第二、是想与大家一起学习;第三、也想让专业老师可以多少指点一下有什么不对的。
<<Windows图形编程>>---读书笔记
一:Windows图形系统组件:
1:Windows应用程序界面,即Win32 API,是为应用程序提供各种不同服务相互关联的函数集。
而我们从程序员的角度看,Win32 API的服务可分为以下几种:
(1)窗口基础服务,就是通常所说的内核服务。包括Microsoft簇、调试、错误处理、动态加载库(DLL)、进程、线程、文件、I/O、国际功能、进程间通信、性能监测、可装卸式存储和安全等。
(2)用户界面服务,就是通常所说的用户服务。包括开窗口、消息队列、对话框、控制、公用控制、公用对话框、资源、用户输入、shell等。
(3)图形和多媒体服务。包括广播体系结构、颜色管理、Direct、GDI、多媒体、Winodws视频、静态图像、OPNEGL和WINDOWS媒体等。
(4)COM、OLE和ACTIVE X服务。包括组件对象模型、自动化、Microsoft事务服务器以及对象链接与嵌入等。
(5)数据库和消息服务。包括数据存取对象(DOA)、结构化查询语言(SQL)服务器、消息API(MAPI)等。
(6)网络和分布式服务。包括活动目录、消息队列、网络、远程进程调用、例程和远程访问、系统网络体系结构(SNA)服务器、同步管理器和通话API(TAPI)等。
(7)Internet、Intranet和Extranet服务。包括索引服务、Internet Exporer、Microsoft代理、NetShow、脚本和网址服务器等。
(8)安装和系统管理服务。包括配置、安装和系统管理等。
上图就是整个操作系统的设计,Windows NT/2000图形和多媒体系统是分层的系统。其中横线以上是用户模式,横线以下是内核模式。
第一层:最上面的方框包括应用程序,这些程序通过Win32 API和一套32位用户模式系统DLL接口。
第二层:系统DLL层包括类似的DLL,如GDI32.DLL,这是为图形设备界面服务的,又如USER32.DLL为用户界面和窗口的管理服务,KERNEL32.DLL是窗口基本服务等等。
系统DLL层的大多数据模块是由操作系统提供的,但是这一层的组件依赖于硬件销售商提供的用户模式驱动程序。
第三层:系统服务调用入口,它激活由操作系统的内核模式中的系统服务例程提供的系统调用。
内核模式中:在内核空间中的WindowsNT/2000执行体提供图形引擎、I/O管理器、视频端口驱动程序等来支持图形和多媒体系统。它需要销售商提供的设备驱动程序的支持,这些设备驱动程序借助OS硬件抽象层和硬件设备(如总线、视频显示、打印机)矩阵对话。