WINDOWS编程基础
日期:2007年8月9日 作者: 查看:[大字体 中字体 小字体]-
与内存一样,键盘和鼠标输入也是Windows的共享资源,Windows下的C程序不能通过调用getchar函数直接从键盘上读取字符。在 Windows中,应用程序不直接说明是从键盘还是从鼠标器读取输入消息,而是从被称作系统队列的键盘、鼠标和时钟等接受所有的输入消息,然后再由此队列负责把输入消息重新分配到各个应用程序中,即把系统队列中的消息复制到应用程序的相应队列中,也就是把输入重定向到相应的应用程序,此时如应用程序准备处理输入,它就从自己的队列中读取消息。
键盘、鼠标和时钟的所有信息都具有同一格式,并且用同样的方式进行处理,另外,Windows给每个消息提供一个与设备无关的虚拟键码来标识该键,键盘产生与设备有关的扫描码。作为共享资源的键盘和鼠标,为Windows下运行的所有应用程序提供输入,从键盘输入的所有消息都直接送到当前处于激活状态的窗口,而与鼠标有关的消息则送到鼠标光标所指的窗口中。这里的消息具有特定的含义,下面简要介绍。
Windows的消息系统是多任务执行环境的基础之一,它是发送消息的基本结构。从编程者的角度看来,一条消息可被视为某一事件的发生(如按下或移动鼠标、键盘击键),这些事件既可以由用户引发,也可以由应用程序产生,甚至Windows本身也能发出消息。
Windows中的消息主要有两个作用:(l)Windows通过它的消息系统实现多任务功能,支持多个任务同时并发执行。这一消息系统使得多个应用程序有可能共享一个物理处理器,每次 Windows向应用程序传送消息的同时也分配该程序一段CPU时间。(2)使应用程序对该环境中的事件发生响应。每当一个事件发生时,Windows都记录一次,并把一个适当的消息发送给对此事件感兴趣的各个应用程序。所以从最基本的层次看,Windows应用程序的一个主要任务是处理消息。
Windows的第三个主要特点是设备独立性。一个应用程序可能要与多种硬件设备接口,例如显示器有多种类型,怎样才能使用户开发的应用程序可以不受设备变更的影响呢?
非Windws环境(如DOS)下开发的应用程序必须为每种叶能用到的设备写驱动程序。假定现在要编写一个适用于各种打印机的图形打印程序,程序员必须为每种打印机编写不同的驱动程序。我们都知道,打印机的种类很多,如Epson LQ-l500、Epson LQ-1600、HP LaserJet、HP Deskjet等,显然这样做工作量很大。
在Windows环境下,每种设备驱动程序——不管是显示器,还是打印机、键盘、鼠标——只需写一次。这样就不需要每个软件开发人员去编写自己的设备驱动程序,只要硬件生产厂商为其产品编写一个设备驱动程序,由他们把这些设备驱动程序连同设备一起提供给用户即可。Windows在安装时,已包括了系统现有的每一个设备的驱动程序,每当应用程序发出打印或画图命令时,Windows就通过适当的驱动程序输出打印数据或图形。把用户所需的设备驱动程序直接装入系统,从而省去许多重复琐碎的编程工作。
该功能使Windwos应用的开发人员很容易开发自己的应用程序。应用程序只要与Windows打交道,而不必管任何具体的输入/输出设备,不必知道所用的打印机或图形显示器的型号规格。Windows为实现这种与设备无关的特性,规定与Windons接口的硬件须具备几种规定功能,它们是使用软件开发工具包(SDK)时保证相应的例程能正常工作的最基本功能。对于每类设备有一组含义不同的功能定义,你可参阅相应的Windows手册。
Windows的许多功能是由被称作是DLL的动态链接库提供的。DLL提供一个强大且灵活的图形用户口,从而增强了基本的操作系统。DLL中的预定义函数不是当.EXE文件生成时静态产生的,而是当应用程序动态装入时才与之相连的。这样做显然节省了内存,不管有多少应用模序在运行,同一时间RAM中只有程序库的一个备份。
Windows改变了程序库的格式,因而有更强的通用性,它们不仅保留了其他DOS执行文件的同样格式,而且可包含任何程序可包含的内容。除了函数,程序库也可以编码数据甚至并入图形资源(如光标形状和位图)。Windows程序库扩展了共享资源的范围,并且为程序员节省了更多时间。
从技术角度讲,当一个Windows应用程序调用一个Windows函数时,编译器必须为此函数产生一个远程调用该函数的机器码,这个函数位于 Windows程序库的代码段。于是出现了这样一个问题:程序在Windows中真正运行之前,Windows函数的地址是未知的。为解决这一问题, Windows提供了延迟联编(也称动态链接)技术。使用MSC6.0版中的LINK或Pascal的链接程序即可完成这个任务。包含在SDK中的是特殊的“入口程序库”,用于为Windows程序的动态链接作准备。许多Windows的小模式程序都要用到LIBW.LIB和SLIBW.LIB这两个入口程序库。SLIBW.LIB程序为包含程序中可能调用的所有Windows函数的记录,这个记录定义了各个函数所在的Windows模块。 - 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] 下一页
-
- WINDOWS编程基础 相关文章:
- ·C#基础概念二十五问
- ·Auto CAD三维基础实例:弯管制作教程
- ·Photoshop基础知识之画笔工具的使用
- ·Windows编程基础 - 概述
- ·驱动完全手册——基础篇
- ·WINDOWS编程基础
- ·电脑硬件维护基础知识
- ·注册表基础—注册表使用全攻略之一
- ·Auto CAD基础教程:弯管三维转二维
- ·新手必学之局域网基础知识
- WINDOWS编程基础 相关软件
- ·基础会计学视频教学资料第一章
- ·上海市2000年度《职称计算机应用基础考试练习软件》
- ·26套2003《公共基础知识》模拟题
- ·MS-DOS基础教程 V4.5
- ·基础班会计实务
- ·泰语入门基础课程上册 V1.0
- ·计算机基础考试系统 V3.6.8
- ·公务员考试宝典2006版(公共基础知识) V3.0
- ·Java教学视频录像(高级篇)之Java网络编程基础 V2.0
- ·全部知识学的基础
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
下一篇:编程网址推荐
精品推荐
热点TOP10
- ·1394网络适配器是什么东西?
- ·知道对方的ip地址,如何查具体物理地址?
- ·arp.exe是什么
- ·XSL/XML网页制作入门,入门到精通
- ·初学者入门:如何学习网页制作?
- ·素材网站、优秀设计素材大全
- ·jsp Smart Upload上传下载全攻略
- ·常用网页使用js技巧收集(200多个)
- ·WINDOWS编程基础
- ·为什么打开网页那么慢?
- ·请问如何查出我被人限制网速~~~
- ·常见弹出代码集合
- ·制作网站的步骤和方法
- ·网页版面设计
- ·站长常用广告代码的表达大全(不断更新中,希望收藏本页)
- ·网页对联广告代码大全
- ·ADSL登录是错误,出现691是什么意思
- ·手把手教你做网站必备的六步
- ·怎么样才能访问到局域网其他的机器
- ·网站打不开
特别推荐
- ·常见弹出代码集合
- ·国内外cms网站大全
- ·CSDN 总结 精华 ASP 代码
- ·编写高性能 Web 应用程序的 10 个技巧
- ·制作网页需要学习哪些技术?
- ·再次举例熟悉网页的头部信息表示涵义
- ·英文版本的cms大全
- ·ASP.NET中应用XML技术实现Web报表打印
- ·web标准常见问题大集合
- ·mssql数据库操作手册-全是精髓
- ·怎么让网页插入FLASH居中显示啊?代码!
- ·推荐FTP软件LeapFTP使用教程
- ·ADSL登录是错误,出现691是什么意思
- ·初学者入门:如何学习网页制作?
- ·ADSL宽带LINK灯闪
- ·jsp Smart Upload上传下载全攻略
- ·怎么样才能访问到局域网其他的机器
- ·服务器安装Zend Optimizer的方法
- ·信了你的邪-阿彪就能装上iis组件
- ·手把手教你做网站必备的六步
