2024年9月什么是句柄?什么是句柄什么是最左素短语

 更新时间:2024-10-12

  ⑴什么是句柄?什么是句柄什么是最左素短语

  ⑵在Windows程序中并不是用物理地址来标识一个内存块、文件、任务或动态装入模块的,WINDOWS程序中并不是用物理地址来标识一个内存块,参考资料来源:百度百科-句柄什么是句柄什么是最左素短语句柄(Handle是一个是用来标识对象或者项目的标识符,扩展资料:句柄的使用句柄在Windows编程中是一个很重要的概念,句柄是一个标识符,句柄是一个标识符,句柄是什么意思句柄概念在WINDOWS编程中是一个很重要的概念,应用程序几乎总是通过调用一个Windows函数来获得一个句柄。

  ⑶句柄就是个数字,一般和当前系统下的整数的位数一样,比如bit系统下就是个字节。

  ⑷这个数字是一个对象的唯一标示,和对象一一对应。

  ⑸这个对象可以是一个块内存,一个资源,或者一个服务的context(如socket,thread等等。

  ⑹这个数字的来源可以有很多中,只要能保证和它代表的对象保持唯一对应就可以,比如可以用内存地址,也可以用句柄表的序号,或者干脆用一个自增ID,再或者用以上的值去异或一个常数。

  ⑺windows之所以要设立句柄,根本上源于内存管理机制的问题—虚拟地址,简而言之数据的地址需要变动,变动以后就需要有人来记录管理变动,(就好像户籍管理一样,因此系统用句柄来记载数据地址的变更。

  ⑻传统上操作系统内核和系统服务API都是C语言接口的,但是其内部设计理念上又是OO的,所以有对象概念却没有对应的语言语法支持。

  ⑼句柄的作用就是在C语言环境下代替C++的对象指针来用的,创建句柄就是构造,销毁句柄就是析构,用句柄调用函数相当于传入this指针。

  ⑽如果有系统API是C++接口的,那么就没有句柄了,而是某个接口指针,IXXXPtr之类的,比如Windows的ptr。

  ⑾参考资料来源:百度百科-句柄

  ⑿什么是句柄什么是最左素短语

  ⒀句柄(Handle是一个是用来标识对象或者项目的标识符,可以用来描述窗体、文件等,值得注意的是句柄不能是常量。

  ⒁Windows之所以要设立句柄,根本上源于内存管理机制的问题,即虚拟地址。简而言之数据的地址需要变动,变动以后就需要有人来记录、管理变动,因此系统用句柄来记载数据地址的变更。

  ⒂最左素短语就是处于句型最左边的素短语的短语。素短语是一个递归的定义,至少含有一个终结符,并且除它自身之外不再含任何更小的素短语。

  ⒃句柄在Windows编程中是一个很重要的概念,在Windows程序中并不是用物理地址来标识一个内存块、文件、任务或动态装入模块的。相反地,WindowsAPI给这些项目分配确定的句柄,并将句柄返回给应用程序,然后通过句柄来进行操作。

  ⒄应该明白的是,句柄是一个标识符,是用来标识对象或者项目的。从数据类型上来看它只是一个位的无符号整数。

  ⒅应用程序几乎总是通过调用一个Windows函数来获得一个句柄,之后其他的Windows函数就可以使用该句柄,以引用相应的对象。在Windows编程中会用到大量的句柄。

  ⒆简单的说是无符号长整数,复杂的说是一种资源标识,有点类似资源指针,但不是指针,因为系统担心用户不恰当的使用指针造成严重后果。百科如下:HANDLE(句柄是Windows操作系统中的一个概念。在Windows程序中,有各种各样的资源(窗口、图标、光标等,系统在创建这些资源时会为它们分配内存,并返回标示这些资源的标示号,即句柄。句柄指的是一个核心对象在某一个进程中的唯一索引,而不是指针。由于地址空间的限制,句柄所标识的内容对进程是不可见的,只能由操作系统通过进程句柄列表来进行维护。句柄列表:每个进程都要创建一个句柄列表,这些句柄指向各种系统资源,比如信号量,线程,和文件等,进程中的所有线程都可以访问这些资源。其实我们编程时输出一下句柄的值就可以发现这些值往往非常小(《。由此就可以看出句柄的性质了。

  ⒇句柄概念在WINDOWS编程中是一个很重要的概念,在许多地方都扮演着重要的角色。但由此而产生的句柄概念也大同小异,比如:《《MicrosoftWindowsDeveloper’sWorkshop》》(MicrosoftPress,byRichardWilton)一书中句柄的概念是:在Windows环境中,句柄是用来标识项目的,这些项目包括:*.模块(module)*.任务(task)*.实例(instance)*.文件(file)*.内存块(blockofmemory)*.菜单(menu)*.控制(control)*.字体(font)*.资源(resource),包括图标(icon),光标(cursor),字符串(string)等*.GDI对象(GDIobject),包括位图(bitmap),画刷(brush),元文件(metafile),调色板(palette),画笔(pen),区域(region),以及设备描述表(devicecontext)。WINDOWS程序中并不是用物理地址来标识一个内存块,文件,任务或动态装入模块的,相反的,WINDOWSAPI给这些项目分配确定的句柄,并将句柄返回给应用程序,然后通过句柄来进行操作。在《《WINDOWS编程短平快》》(南京大学出版社一书中是这么说的:句柄是WONDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。WINDOWS句柄有点象C语言中的文件句柄。从上面的个定义中的我们可以看到,句柄是一个标识符,是拿来标识对象或者项目的,它就象我们的姓名一样,每个人都会有一个,不同的人的姓名不一样,但是,也可能有一个名字和你一样的人。

您可能感兴趣的文章:

相关文章