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

下载本文档

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

文档简介

Windows程序内部运行原理

主讲人:孙鑫http://Windows应用程序,操作系统,计算机硬件之间的相互关系http://关于API向下的箭头③表示应用程序可以通知操作系统执行某个具体的动作,如操作系统能够控制声卡发出声音,但它并不知道应该何时发出何种声音,需要应用程序告诉操作系统该发出什么样的声音。这个关系好比有个机器人能够完成行走的功能,但是,如果人们不告诉它往哪个方向上走,机器人是不会主动行走的。这里的机器人就是操作系统,人们就是应用程序。http://关于API那么,应用程序是如何通知操作系统执行某个功能的呢?有过编程经验的读者都应该知道,在应用程序中要完成某个功能,都是以函数调用的形式实现的,同样,应用程序也是以函数调用的方式来通知操作系统执行相应的功能的。操作系统所能够完成的每一个特殊功能通常都有一个函数与其对应,也就是说,操作系统把它所能够完成的功能以函数的形式提供给应用程序使用,应用程序对这些函数的调用就叫做系统调用,这些函数的集合就是Windows操作系统提供给应用程序编程的接口(ApplicationProgrammingInterface),简称WindowsAPI。如CreateWindow就是一个API函数,应用程序中调用这个函数,操作系统就会按照该函数提供的参数信息产生一个相应的窗口。

http://关于消息及消息队列向上的箭头④表示操作系统能够将输入设备的变化上传给应用程序。如用户在某个程序活动时按了一下键盘,操作系统马上能够感知到这一事件,并且能够知道用户按下的是哪一个键,操作系统并不决定对这一事件如何作出反应,而是将这一事件转交给应用程序,由应用程序决定如何对这一事件作出反应。好比有个蚊子叮了我们一口,我们的神经末梢(相当于操作系统)马上感知到这一事件,并传递给了我们的大脑(相当于应用程序),我们的大脑最终决定如何对这一事件作出反应,如将蚊子赶走,或是将蚊子拍死。对事件作出反应的过程就是消息响应。http://关于消息及消息队列操作系统是怎样将感知到的事件传递给应用程序的呢?这是通过消息机制(Message)来实现的。操作系统将每个事件都包装成一个称为消息的结构体MSG来传递给应用程序,参看MSDN。MSG结构定义如下:typedefstructtagMSG{ HWNDhwnd; UINTmessage; WPARAMwParam; LPARAMlParam; DWORDtime; POINTpt;}MSG;http://关于句柄句柄(HANDLE),资源的标识。操作系统要管理和操作这些资源,都是通过句柄来找到对应的资源。按资源的类型,又可将句柄细分成图标句柄(HICON),光标句柄(HCURSOR),窗口句柄(HWND),应用程序实例句柄(HINSTANCE)等等各种类型的句柄。操作系统给每一个窗口指定的一个唯一的标识号即窗口句柄。http://从变量的类型区分变量的用途intx,y;x=30; y=30; //x和y既可以用来表示坐标点,也可以用来表示宽度和高度,还可以用来表示身高和体重。typedefintWIDTHtypedefintHEIGHTWIDTHx;HEIGHTy;//好处:我们从变量的类型上就可以知道x和y是用来表示宽度和高度。http://WinMain函数 Windows程序的入口函数intWINAPIWinMain(HINSTANCEhInstance,//handletocurrentinstanceHINSTANCEhPrevInstance,//handletopreviousinstanceLPSTRlpCmdLine,//commandlineintnCmdShow//showstate);http://窗口吃的创寄建创建役一个穿完整显的窗马口需调要经贼过下树面四磁个操膀作步粗骤:设计们一个挣窗口棉类;注册扣窗口洒类;创建洒窗口票;显示著及更篮新窗扯口。ht重tp群:/曲/设计昼窗口失类ty缝pe棉de正f颠st锁ru呢ct喂_迎WN渡DC链LA吨SS具{UI阳NT佣s克ty济le遭;WN烛DP皂RO馋C谅lp膝fn院Wn吓dP档ro狠c;in干t肯c木bC折ls陈Ex恢tr鞭a;in床t赶c鹊bW毒nd颜Ex挥tr杏a;HA战ND自LE饿hI袭ns似ta批nc庸e;HI蝴CO已N午h拳Ic法on苍;HC创UR粘SO污R境h灶Cu山rs壶or精;HB痛RU萝SH稿h伪br鸣Ba仁ck萍gr佳ou忧nd确;LP哲CT争ST表R炕l蓬ps标zM规en笋uN搂am市e;LP报CT逆ST稼R啊l束ps犁zC透la镇ss甚Na龄me袍;}乖WN判DC符LA费SS捐;ht额tp枣:/逗/窗口尿类的健类型在我招们的拦程序谢中经陡常要谨用到组一类阅变量崖,这敬个变云量里尝的每繁一位父(b宗it块)都撑对应移某一括种特设性。爆当该早变量园的某纳位为锋1时荷,表趣示有持该位船对应宗的那值种特蛋性,父当该猪位为重0时趁,即支没有悼该位伴所对嗽应的就特性字。当永变量疫中的晒某几弯位同植时为躲1时询,就扎表示雕同时私具有队几种凡特性渡的组腹合。由一个卫变量午中的慰哪一嘱位代覆表哪愿种意诊义,伪不容彻易记姑忆,但所以陡我们益经常防根据阶特征故的英疤文拼贩写的锁大写贝去定斜义一唱些宏补,该喇宏所引对应乡丰的数盛值中毒仅有岩与该聋特征冈相对解应的蚊那一掠位(个bi梨t)穷为1僻,其湾余的邻bi稀t都易为0杯。我仗们使姜用g画ot揪o鲁de辜fi喉ni恨ti粉on巨就能摊发现典CS忍_V剪RE名DR溪AW颠=0抖x0墓00蜓1,泰CS饲_H图RE撤DR黎AW字=0咳x0华00架2,总CS恨_D志BL乖CL依KS弄=条0x敏00串08盟,C流S_绑NO份CL胁OS槐E=淋0x其02堂00薄。他动们的刊共同槐点就仓是只飘有一架位为堤1,梅其余伤位都忽为0鹅。如座果我即们希站望某避一变动量的牲数值席既有糠CS膀_V浑RE滤DR州AW盒特性轰,又纪有C呆S_沫HR万ED泉RA驰W特留性,钞我们狡只需斤使用科二进朗制O秒R(肝|)稀操作贼符将独他们召进行择或运挂算相歼组合昂,如蔑st亦yl肠e=侧CS讯_V丧RE搜DR玻AW均|跟C毕S_辅HR梁ED玩RA制W萝|悦CS江_N齐OC肉LO逼SE晒。如怎果我药们希蠢望在牧某一齐变量拌原有太的几厨个特搞征上没去掉讯其中疏一个披特征苍,用廊取反朴(~犯)之初后再甜进行卡与(腔&)笑运算叛,就裂能够音实现信,如盯在刚焦才的胡st劣yl伯e的禾基础载上去坦掉C控S_筒NO佩CL粒OS份E特挪征,泥可以练用s夫ty缘瑞le殊&滤~霞CS毕_N瞎OC浊LO代SE锦实现型。ht择tp念:/坏/窗口娃过程亩函数第二皱个成电员变御量l挂pf两nW浇nd僻Pr绒oc热指定间了这论一类叙型窗酿口的蝴过程渡函数校,也织称回抓调函沟数。述回调附函数吴的原汽理是讯这样离的,澡当应格用程质序收码到给吩某一般窗口株的消轿息时旨(还娘记得山前面厅讲过闯的消醒息通着常与细窗口钓相关赞的吗攀?)励,就趣应该还调用母某一孕函数相来处洪理这件条消白息。廊这一绝调用饰过程晴不用铲应用晶程序钉自己撒来实哥施,抓而由抬操作涨系统钻来完碧成,婆但是判,回阔调函绕数本吹身的呆代码诱必须辟由应漂用程役序自究己完龄成。菠对于渠一条临消息身,操签作系袋统到鸦底调秋用应墓用程特序中灶的哪找个函纽奉数(肺回调偷函数辉)来遍处理岁呢?烧操作述系统胸调用牛的就看是接港受消弟息的粮窗口冶所属慕的类客型中蛮的l躬pf朽nW律nd窜Pr汉oc脉成员蚁指定拌的函苹数。缺每一许种不孕同类乌型的邪窗口露都有倾自己吵专用榆的回阁调函宿数,击该函裂数就笋是通震过l助pf涨nW秃nd衰Pr膨oc糟成员挂指定陡的。ht掘tp淘:/洽/窗口屈过程麦函数举例肉:汽奖车厂信家生纱产汽剥车好以比应放用程燃序创缘瑞建窗贿口,具用户束使用合汽车背好比桐操作屿系统扯管理鲜窗口牙,某酬种汽丑车在援销售段前就董指定干好了帖修理河站(袭类似棕回调

温馨提示

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

评论

0/150

提交评论