大家好,小中来为大家解答以上问题,句柄数量,句柄数很多人还不知道,现在让我们一起来看看吧!
1、WINDOWS句柄有点像C语言中的文件句柄。从上面的定义我们可以看出,句柄是一个标识符,用来标识一个对象或者一个项目。它就像我们的名字一样。每个人都会有一个。不同的人有不同的名字,但也可能有和你同名的人。根据数据类型,它只是一个16位无符号整数。应用程序几乎总是调用一个WINDOWS函数来获得一个句柄,然后其他WINDOWS函数可以使用该句柄来引用相应的对象。如果你想更透彻地了解句柄,我可以告诉你,句柄是指针对指针。我们知道,所谓指针就是一个内存地址。应用程序启动后,组成该程序的对象驻留在内存中。简单理解的话,似乎只要知道这个内存的第一个地址,就可以随时访问这个地址的对象。但是,如果你真的这么想,那你就大错特错了。我们知道,Windows是一个基于虚拟内存的操作系统。在这种系统环境中,Windows内存管理器经常在内存中来回移动对象,以满足各种应用程序的内存需求。被移动的对象意味着它的地址已经改变。如果地址老是这样变来变去,那我们去哪里找对象呢?为了解决这个问题,Windows操作系统为每个应用程序释放了一些内存地址,用来注册内存中每个应用对象的地址变化,而这个地址(存储单元的位置)本身是不变的。在移动了对象在内存中的位置之后,Windows内存管理器通知这个句柄地址对象的新地址来保存它。这样,我们只要记住这个句柄地址,就可以间接知道对象在内存中的位置。这个地址在对象加载时由系统分配,在系统卸载时释放给系统。句柄地址(稳定)记录内存中对象的地址内存中对象的地址(不稳定)实际对象本质:在WINDOWS程序中,物理地址不是用来标识一个内存块、文件、任务或者动态加载的模块。相反,WINDOWS API会为这些项目分配特定的句柄,并将句柄返回给应用程序,然后通过句柄进行操作。但必须注意的是,每次重启一个程序,系统都不能保证分配给这个程序的句柄和原来的是一样的,大多数情况确实是不一样的。如果我们把去电影院看电影看作是一个应用的启动,那么系统分配给应用的句柄总是不一样的,这和电影院卖给我们的票总是不同的座位是一个道理。
2、伙计,重装系统。我晕~
3、中毒
本文到此结束,希望对大家有所帮助。