WINDOWS API 程序设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

WINDOWSAPI程序设计(第一章:开始)作者:史宝旭|2005年01月17日16时10分|已阅7241次【内容提要】windowsapi编程指导本书介绍了在MicrosoftWindows98、MicrosoftWindowsNT4.0和WindowsNT5.0下程序写作的方法。这些程序用C语言编写并使用原始的WindowsApplicationProgrammingInterface(API)。如在本章稍后所讨论的,这不是写作Windows程序的唯一方法。然而,无论最终您使用什么方式写作程序,了解WindowsAPI都是非常重要的。正如您可能知道的,Windows98已成为使用Intel32位微处理器(例如486和Pentium)的IBM兼容型个人计算机环境上最新的图形操作系统之代表。WindowsNT是IBMPC兼容机种以及一些RISC(精简指令集计算机)工作站上使用的Windows工业增强型版本。使用本书有三个先决条件。首先,您应该从使用者的角度熟悉Windows98。不要期望可以在不了解Windows使用者接口的情形下开发其应用程序。因此,我建议您在开发程序(或在进行其它工作)时使用执行Windows的机器来跑Windows应用程序。第二,您应了解C语言。如果要写Windows程序,一开始却不想了解C语言,那不是一个好主意。我建议您在文字控制台环境中,例如在Windows98MS-DOS命令提示窗口下提供的环境中学习C语言。Windows程序设计有时包括一些非文字模式程序设计的C语言部分;在这些情况下,我将针对这些问题提供讨论。但大多数情况下,您应非常熟悉该语言,特别是C语言的结构和指针。了解标准C语言执行期链接库的一些相关知识是有帮助的,但不是必要的。第三,您应该在机器上安装一个适于进行Windows程序设计的32位C语言编译器和开发环境。在本书中,假定您正在使用MicrosoftVisualC++6.0,该软件包可独立购买,也可作为VisualStudio6.0软件包的一部分购买。到此为止,我将不再假设您具有任何图形使用者接口(如Windows)的程序写作经验。WINDOWS环境Windows几乎不需要介绍。然而人们很容易忘记Windows给办公室和家庭桌上型计算机所带来的重大改变。Windows在其早期曾经走过一段坎坷的道路,征服桌上型计算机市场的前途一度相当渺茫。Windows简史在1981年秋天IBMPC推出之后不久,MS-DOS就已经很明显成为PC上的主流操作系统。MS-DOS代表MicrosoftDiskOperatingSystem(磁盘操作系统)。MS-DOS是一个小型的操作系统。MS-DOS提供给用户一种命令列接口,提供如DIR和TYPE的命令,也可以将应用程序加载内存执行。对于应用程序写作者,它提供了一组函数呼叫,进行文件的输入输出(I/O)。对于其它的外围处理-尤其是将文字或图形写到显示器上-应用程序可以直接存取PC的硬件。由于内存和硬件的限制,成熟的图形环境缓慢地才到来。当苹果计算机公司不幸的Lisa计算机在1983年1月发表时,它提供了不同于文字模式环境的另一种选择,并在1984年1月成为Macintosh上图形环境的一种标准。尽管Macintosh的市场占有率在下降,但是它仍然被认为是衡量所有其它图形环境的标准。包括Macintosh和Windows的所有图形环境,其实都要归功于XeroxPaloAltoResearchCenter(PARC)在70年代中期所作的开拓性研究工作。Windows是由微软在1983年11月(在Lisa之后,Macintosh之前)宣布,并在两年后(1985年11月)发行。在此后的两年中,紧随着MicrosoftWindows早期版本1.0之后,又推出了几种改进版本,以支持国际商业市场,并提供新型视讯显示器和打印机的驱动程序。Windows版本2.0是在1987年11月正式在市场上推出的。该版本对使用者接口做了一些改进。这些改进中最有效的是使用了可重迭式窗口,而Windows1.0中使用的是并排式窗口。Windows2.0还增强了键盘和鼠标接口,特别是加入了菜单和对话框。至此,Windows还只要求Intel8086或者8088等级的微处理器,以「实际模式」执行,只能存取地址在1MB以下的内存。Windows/386(在Windows2.0之后不久发行的)使用Intel386微处理器的「虚拟8086」模式,实现将直接存取硬件的多个MS-DOS程序窗口化和多任务化。为了统一起见,Windows版本2.1被更名为Windows/286。Windows3.0是在1990年5月22日发表的。它将Windows/286和Windows/386结合到同一种产品中。Windows3.0有了一个很大的改变,这就是对Intel的286、386和486微处理器保护模式的支持。这能使Windows和Windows应用程序能存取高达16MB的内存。Windows用于执行程序和维护文件的「外壳」程序得到了全面的改进。Windows3.0是第一个在家用和办公室市场上取得立足点的版本。任何Windows的历史介绍都必须包括一些OS/2的说明,OS/2是对DOS和Windows的另一种选择,最初是由Microsoft和IBM合作开发的。OS/2版本1.0(只有文字模式)在Intel286(或者后来的)微处理器上运行,在1987年末发布。在1988年10月的OS/2版本1.1中出现了管理图形使用者接口的PM(PresentationManager)。PM最初的设计构想是成为Windows的一种保护模式版本,但是图形API改变程度太大,致使软件生产厂商很难提供对这两种平台的支持。到1990年9月,IBM和Microsoft之间的冲突达到了高峰,导致这两个公司最后分道扬镳。IBM接管了OS/2,而Microsoft明确表示Windows将是他们操作系统策略的中心。虽然OS/2仍然拥有一些狂热的崇拜者,但是它远不及Windows这样的普及程度。MicrosoftWindows版本3.1是1992年4月发布的,其中包括的几个重要特性是TrueType字体技术(给Windows带来可缩放的轮廓字体)、多媒体(声音和音乐)、对象连结和嵌入(OLE:ObjectLinkingandEmbedding)和通用对话框。跟OS/2一样,Windows3.1只能在保护模式下运作,并且要求至少配置了1MB内存的286或386处理器。在1993年7月发表的WindowsNT是第一个支持Intel386、486和Pentium微处理器32位保护模式的Windows版本。WindowsNT提供32位平坦寻址,并使用32位的指令集。(本章后面我会谈到一些寻址空间的问题)。WindowsNT还可以移植到非Intel处理器上,并在几种使用RISC芯片的工作站上执行。Windows95是在1995年8月发布的。和WindowsNT一样,Windows95也支持Intel386或更高等级处理器的32位保护模式。虽然它缺少WindowsNT中的某些功能,诸如高安全性和对RISC机器的可移植性等,但是Windows95具有需要较少硬件资源的优点。Windows98在1998年6月发布,具有许多加强功能,包括执行效能的提高、更好的硬件支持以及与因特网和全球信息网()更紧密的结合。Windows方面Windows98和WindowsNT都是支持32位优先权式多任务(preemptivemultitasking)及多线程的图形操作系统。Windows拥有图形使用者接口(GUI),这种使用者界面也称作「可视化接口」或「图形窗口环境」。有关GUI的概念可追溯至70年代中期,在Alto和Star等机器上以及SmallTalk等环境中由XeroxPARC所作的研究工作。该项研究的成果后来被AppleComputer和Microsoft引入主流并流行起来。虽然有一些争议,但现在已非常清楚,GUI是(Microsoft的CharlesSimonyi的说法)一个在个人计算机工业史上集各方面技术大成于一体的最重要产物。所有GUI都在点矩阵对应的视讯显示器上处理图形。图形提供了使用屏幕的最佳方式、传递信息的可视化丰富多彩环境,以及能够WYSIWYG(whatyouseeiswhatyouget:所见即所得)的图形视讯显示和为书面文件准备好格式化文字输出内容。在早期,视讯显示器仅用于响应使用者通过键盘输入的文字。在图形使用者接口中,视讯显示器自身成为使用者输入的一个来源。视讯显示器以图标和输入设备(例如按钮和滚动条)的形式显示多种图形对象。使用者可以使用键盘(或者更直接地使用鼠标等指向设备)直接在屏幕上操纵这些对象,拖动图形对象、按下鼠标按钮以及滚动滚动条。因此,使用者与程序的交流变得更为亲密。这不再是一种从键盘到程序,再到视讯显示器的单向信息流动,使用者已经能够与显示器上的对象直接交互作用了。使用者不再需要花费长时间学习如何使用计算机或掌握新程序了。Windows让这一切成真,因为所有应用程序都有相同的基本外观和感觉。程序占据一个窗口-屏幕上的一块矩形区域。每个窗口由一个标题列标识。大多数程序功能由程序的菜单开始。用户可使用滚动条观察那些无法在一个屏幕中装下的信息。某些菜单项目触发对话框,用户可在其中输入额外的信息。几乎在每个大的Windows程序中都有一个用于开启文件的特殊对话框。该对话框在所有这些Windows程序中看起来都一样(或接近相同),而且几乎总是从同一菜单选项中启动。一旦您了解使用一个Windows程序的方法,您就非常容易学习其它的Windows程序。菜单和对话框允许用户试验一个新程序并探究它的功能。大多数Windows程序同时具有键盘接口和鼠标接口。虽然Windows程序的大多数功能可通过键盘控制,但使用鼠标要容易得多。从程序写作者的角度看,一致的使用者接口来自于Windows建构菜单和对话框的内置程序。所有菜单都有同样的键盘和鼠标接口,因为这项工作是由Windows处理,而不是由应用程序处理。为便于多个程序的使用,以及这些程序间信息的交换,Windows支持多任务。在同一时刻能有多个Windows程序显示并运行。每个程序在屏幕上占据一个窗口。用户可在屏幕上移动窗口,改变它们的大小,在不同程序间切换,并从一个程序向另一个程序传送数据。因为这些窗口看起来有些像桌面上的纸(当然,这是计算机还未占据办公桌之前的年代),Windows有时被称作:一个显示多个程序的「具象化桌面」。Windows的早期版本使用一种「非优先权式(non-preemptive)」的多任务系统。这意味着Windows不使用系统定时器将处理时间分配给系统中运行的多个应用程序,程序必须自愿放弃控制以便其它程序运行。在WindowsNT和Windows98中,多任务是优先权式的,而且程序自身可分割成近乎同时执行的多个执行绪。操作系统不对内存进行管理便无法实现多任务。当新程序启动、旧程序终止时,内存会出现碎裂空间。系统必须能够将闲置的内存空间组织在一起,因此系统必须能够移动内存中的程序代码和数据块。即使是在8088微处理器上跑的Windows1.0也能进行这类内存管理。在实际模式限制下,这种能力被认为是软件工程一个令人惊讶的成就。在Windows1.0中,PC硬件结构的640KB内存限制,在不要求任何额外内存的情况下被有效地扩展了。但Microsoft并未就此停步:Windows2.0允许Windows应用程序存取扩充内存(EMS);Windows3.0在保护模式下,允许Windows应用程序存取高达16MB的扩展内存。WindowsNT和Windows98通过成熟的32位操作系统及平坦寻址空间,摆脱了这些旧的限制。Windows上执行的程序可共享在称为「动态链接库」的文件中的例程。Windows包括一个机制,能够在执行时连结使用动态链接库中例程的程序。Win

1 / 20
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功