什么是句柄 5
4个回答
展开全部
句柄就是个数字,一般和当前系统下的整数的位数一样,比如32bit系统下就是4个字节。
这个数字是一个对象的唯一标示,和对象一一对应。
这个对象可以是一个块内存,一个资源,或者一个服务的context(如 socket,thread)等等。
这个数字的来源可以有很多中,只要能保证和它代表的对象保持唯一对应就可以,比如可以用内存地址,也可以用句柄表的序号,或者干脆用一个自增ID,再或者用以上的值去异或一个常数。
扩展资料:
windows 之所以要设立句柄,根本上源于内存管理机制的问题—虚拟地址,简而言之数据的地址需要变动,变动以后就需要有人来记录管理变动,(就好像户籍管理一样),因此系统用句柄来记载数据地址的变更。
传统上操作系统内核和系统服务API都是 C 语言接口的,但是其内部设计理念上又是OO的,所以有对象概念却没有对应的语言语法支持。
句柄的作用就是在 C 语言环境下代替 C++ 的对象指针来用的,创建句柄就是构造,销毁句柄就是析构,用句柄调用函数相当于传入this指针。
如果有系统API是 C++ 接口的,那么就没有句柄了,而是某个接口指针,IXXXPtr之类的,比如Windows的com ptr。
参考资料来源:百度百科-句柄
展开全部
句柄,是系统程序对数据定义的标识,通常是一个整数。
系统程序和用户程序需要进行数据交换,为了避免传递大量数据,尤其是不希望用户直接操作数据,系统使用一个数字来表示这组数据(例如与一个窗口相关的一组数据)。用户程序如果需要对数据进行修改,都只能通过系统程序提供的函数以及数据的句柄和相关参数来完成。
系统程序很可能使用数据的地址作为句柄,但这仅仅是可能,完全取决于定义句柄的程序。
希望解释清楚了。
系统程序和用户程序需要进行数据交换,为了避免传递大量数据,尤其是不希望用户直接操作数据,系统使用一个数字来表示这组数据(例如与一个窗口相关的一组数据)。用户程序如果需要对数据进行修改,都只能通过系统程序提供的函数以及数据的句柄和相关参数来完成。
系统程序很可能使用数据的地址作为句柄,但这仅仅是可能,完全取决于定义句柄的程序。
希望解释清楚了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
WINDOWS每打开一个窗口(包含程序运行时的窗口),以及每个窗口内的控件(按扭,输入框等)都会随机分配一个号码,这个号码就是这一窗口或控件的句柄
例如:我此刻回复你的浏览器的窗口句柄是69010.当然这个句柄号在我电脑里是69010.在你电脑里又会是另一个号,而且当我将这个窗口关掉再打开,句柄号又会再变成另一个
例如:我此刻回复你的浏览器的窗口句柄是69010.当然这个句柄号在我电脑里是69010.在你电脑里又会是另一个号,而且当我将这个窗口关掉再打开,句柄号又会再变成另一个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询