句柄和ID
Windows程序设计中,句柄是无法精术语。随便一个高手,给你讲讲句柄是什,恐怕他都很难给你一个具体的定来。
Windows程序设计中,句柄无所不在,窗口有窗口的句柄HWND线程和程也有句柄HANDLE,甚至有人把套接字也称句柄(我就是这样的)。
句柄在英文中是handle,作为动词讲理的意思。而言之,句柄是象的一个接口,于程序中所及的象,可以通句柄去操作他。应该试图去回答句柄是什,而应该虚的角度去理解他,知道他干什即可。
有人,因handle的定void *,因此他是一个指。有些熟悉内核的人说这是一个索引。法都是不准的。需要注意的是,微并没有精句柄的含,也在某个特殊的操作系中,他使用了一内部含,但是在其他版本中,就不保证这样了。任何句柄的内在假都可能性的后果。
API是接口,句柄是接口,者有什API是一个通用的函数族,他理所有的象,而
句柄是和某个具体象相关联的数据结构。只有借助句柄,API才知道象。
有些象有ID。句柄表示特殊的象,ID也表示某个象,西来表示?
首先,句柄不能唯一表示象。一个象可以有多个句柄。例如:假CreateProcess建一个程,该进程的第一个线程的句柄会返回给调 CreateProcess程。同,在新建的程中,该线程也会有一个句柄。这样线程就有个句柄。我也可以用 DuplicateHandle制一个句柄,个句柄和原来句柄是不一的,但是他都表示同一个象。而个有ID象,在系内,ID肯定是唯一的。
其次,句柄所能实现的功能ID不能实现ID只是一个数字,他不能记录很多信息。而句柄可能在其内部结构记录了很多信息(如限、有无信号等)。
之,如果试图他到底是什,学句柄就会途。从虚的角度去理解,于新手是一点,但是是唯一正法。
句柄一般是操作系避免直接某个象数据结构进行操作而引入的,可以通句柄来使用某个象,而不用知道句柄的内容。
句柄是一指向指的指。我 道,所是一内存地址。用程序后,个程序的各象是住留在内存的。如果简单地理解,似乎我只要个内存的首地址,那就可以随个地址访问对象。但是,如果真的这样认为,那么您就大了。我知道,Windows是一 个以虚内存的操作系。在这种统环境下,Windows内存管理器常在内存中来回移动对象,依此来足各种应用程序的内存需要。象被移意味着它的地址 了。如果地址是如此化,我们该里去该对?了解决问题Windows操作系统为用程序出一些内存地址,用来专门象在内存中的地址化,而个地址(储单元的位置)本身是不的。 Windows内存管理器在移动对象在内存中的位置后,把象告知个句柄地址来保存。这样只需个句柄地址就可以接地知道具体在内存中的个位置。个地址是在象装(Load)由系分配的,当系载时(Unload)。句柄地址()记载象在内存中的地址→象在内存中的地址()实际对象。但是,必注意的是程序次从新,系不能保分配给这个程序的句柄是原来的那个句柄,而且大多数情况的不一的。假如我影院看影看成是一个用程序的动运行,那统给应用程序分配的句柄是不一影院售是不同的一个座位是一的道理。
句柄和控件ID的区
的家庭在就好比是一个程序(窗体也是程序的一部分,实际窗体、控件都是由命令动态构建的,只是省了自己写代而已,autoit的窗体和控件好像就只能用代码构建,和vb不一),控件ID就好像的名字,一般一个家庭(程序)里的多成(控件)之是不会重名的,个人在自己家(程序)里的名字(控件ID)都是唯一的,当的家人(程序代)需要,叫名字的候就直接称呼的名字(控件ID)。
但是全国无数个家庭,就可能会有重名了,于是政府(系)就不管的名字(控件ID)是什,直接分配给每个人(控件)一个身(句柄),公安局(其他程序)来(一个控件)的候就使用的身号(句柄)来保在全国(内存)范里也不会把
个家庭成以后(行了一个新程序),生下了小宝宝(建新的控件)就会得到一个全国(内存)唯一的一个身号(句柄),以保在国内(内存)的唯一性。当一个家庭的成寿正寝(控件销毁)的候,身(句柄)同被作(系收回,以后分配生的控件)。
是“句柄”(handle),handle的本意是把柄,把手的意思。是与操作系打交道的东东个通俗的例子,比如考上了大学,入学后,学校(操作系)会给你一个学生号。注意,个号是学校指定的,无法自。有了个号(学生,假多用)享受学校提供的服:如就可以去图书馆,去食堂吃autoit饭,去教室上等等。但不能到食堂里买啤酒,因学校不允许这种。而在算机中系提供的服就是API用,有了HANDLE,就可以理直气壮地向系提出API的服而指力就大多了,有了指针你可以到去喝酒,打架,学校(操作系)管不着,所以句柄和指的区在于句柄只能用系提供的服。而句柄然是一个能相互区的号但与我普通的ID号又有区,普通的ID号是可以由程序自己定的,而句柄不行,它是象生成指定的,是了区中存在的各个象,个句柄不是由程序
  句柄
    1.句柄,是整个windows程的基,一个句柄是指使用的一个唯一的整数,是指一个四字节长的数,用于用程序中的不同象和同类对象中的不同的例,如,一个窗口,按图标滚动条,设备,控件或者文件等。用程序能访问象的信息。
    2.句柄不是一个指,程序不能利用它句柄来直接阅读文件中的信息。如果句柄不用在I/O文件中,它是毫无用的。
    3.句柄是windows用来用程序中建立的或是使用的唯一整数,windows使用了大量的句柄来来志很多象。
  明:——windows境下,不但可以行多个用程序,可以行多个用程序的多个拷叫做一个例,并且有不同的例句柄。一个例句柄是windows可以行的副本,是唯一可以志此例的整数

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。