Windows程序运行原理.ppt_第1页
Windows程序运行原理.ppt_第2页
Windows程序运行原理.ppt_第3页
Windows程序运行原理.ppt_第4页
Windows程序运行原理.ppt_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Windows程序内部工作原理,演示者:孙鑫,,Windows应用程序,操作系统,计算机硬件之间的相互关系,,API向下箭头 虽然操作系统示出了可以向操作系统通知特定动作的执行,例如操作系统可以控制声卡的声音,但是它不知道应该在什么时候发出什么声音。 应用程序需要通知操作系统应该发出什么样的声音。 这种关系好像是机器人有走路的功能,但是如果不告诉你走哪个方向的话,机器人就不能积极走路。 这里的机器人是操作系统,人们是应用程序。 关于,应用程序是如何通知操作系统运行功能的? 具有编程经验的读者应该知道,要在应用程序中完成功能,应用程序必须以函数调用的形式实现,同样,应用程序也必须以函数调用的形式运行对应于操作系统的功能。 操作系统的特殊功能通常具有相应的函数。 换句话说,操作系统将能够执行的功能作为函数提供给应用程序,应用程序调用这些函数称为系统调用。 这些函数的集合是Windows操作系统为应用程序提供的接口(applicationprogramminginterface ),简称WindowsAPI。 如果CreateWindow是API函数,则当应用程序调用该函数时,操作系统将根据该函数提供的参数信息生成相应的窗口。 ,对于消息和消息队列,向上箭头指示操作系统可以将输入设备变化上传到应用。 当用户在计划活动期间按下键盘时,操作系统将立即感知到该事件,并且知道用户按下了哪个键,操作系统将应用该事件而不是确定如何响应该事件就像蚊子叮了我们一样,我们的神经末端(相当于操作系统)很快感知到这个事件,传达给我们的大脑(相当于应用程序),我们的大脑最终决定了对这个事件的反应,驱蚊,杀蚊。 对事件作出反应的过程是新闻应答。 对于、消息和消息队列,操作系统是如何将感知到的事件传递给应用程序的?这是通过消息机制(Message )实现的。 操作系统引用MSDN将每个事件包装到称为消息的结构MSG中,然后将其传递给应用程序。 MSG结构由typedefstructtagMSGHWNDhwnd; UINTmessage; WPARAMwParam; LPARAMlParam DWORDtime; POINTpt; MSG; 关于、句柄、句柄和资源徽标。 要使操作系统能够管理和操作这些资源,必须使用句柄找到相应的资源。 根据资源类型,可以将控制柄细分为多种类型的控制柄,包括图标控制柄(HICON )、光标控制柄(HCURSOR )、窗口控制柄(HWND )和应用程序实例控制柄(HINSTANCE )。 操作系统分配给每个窗口的唯一标识号是窗口句柄。 ,根据变量类型区分变量的用途,intx,y的x=30; y=30; /x和y可以用来表示坐标点、宽度和高度,也可以用来表示身高和体重。 typedefinetwidthtypedefinethesightwidthx; HEIGHTy; /优点:变量类型表明x和y用于表示宽度和高度。 ,WinMain函数,Windows程序条目函数intwinapiwinmain (hinstance hinstance, /handoltocurrenttinstancehinstancehprevince/handloptoriousinstancelpstrlpcmdline,/commandlineintncmdshow/showstate;、创建窗口和创建完整窗口需要执行以下四个操作步骤:查看和更新创建用于设计窗口类的注册窗口类窗口的窗口。,设计窗口类,typedef struct _ wndclass uint style; WNDPROClpfnWndProc; intcbClsExtra; intcbWndExtra; HANDLEhInstance; HICONhIcon; HCURSORhCursor; HBRUSHhbrBackground; LPCTSTRlpszMenuName; LPCTSTRlpszClassName; WNDCLASS; ,窗口类型是我们程序中常用的变量类型,该变量的每个比特对应一个特性。 当该变量的某个比特为1时,表示具有与该比特对应的特性,当该比特为0时,没有与该比特对应的特性。 变量中的某些人同时为1时,意味着同时具有若干特性的组合。 由于一个变量的哪些比特代表哪些含义,并且难以存储,因此我们通常从特征的英文拼写大写定义宏,在与该宏相对应的数值中,仅与该特征相对应的比特数为1,而其馀的比特数均为0。 使用gotodefinition可以找到CS_VREDRAW=0 x0001、CS_HREDRAW=0 x0002、CS_DBLCLKS=0 x0008和CS_NOCLOSE=0 x0200。 他们的共同点是,只有一个人是1,其馀的都是0。 要使变量的数字同时具有CS_VREDRAW和CS_HREDRAW特性,请使用二进制OR(|)运算符将它们组合起来,如style=cs _ v redraw|cs _ h redraw|cs _ noclose。 在想要删除某个变量原来的几个特征中的一个的情况下,如果在取得检查()之后进行and ()运算,在刚才的style的基础上删除CS_NOCLOSE的特征,就能够用styleCS_NOCLOSE实现。 、窗口过程函数和第二个成员变量lpfnWndProc指定此类窗口的过程函数,也称为回调函数。 回调函数的原理是,当应用程序在窗口中接收到消息时(您记得前面提到的消息通常与窗口相关吗? 中所述情节,对概念设计中的量体体积进行分析。 此调用过程由操作系统而不是应用程序本身执行,但回调函数本身的代码必须由应用程序本身执行。 对于消息,操作系统调用和处理应用程序中的哪些函数(回调函数)?操作系统调用的是接收消息的窗口所属类型的lpfnWndProc成员指定的函数每种类型的窗口都有由lpfnWndProc成员指定的自己的回调函数。 ,窗口过程函数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论