handle的机制

来源:百度知道 编辑:UC知道 时间:2024/06/30 03:09:36
我们在c++中常设计到handle,一个handle对应一段资源。但是它是怎样实现的呢,它是这段资源所对应的对象的地址,还是链表的索引,链表存放对应的资源,还是这个handle和资源之间的映射关系?不知道这个handle是怎样来的???
句柄的作用我是知道的,我不知道的是它是怎样找到这段资源的!yegehaha说它是二级指针,资源的地址会发生变化,为什么资源的地址会发生变化呢,如果资源的地址都会发生变化,那如何保证这个存放这个资源地址的地址不会发生变化呢

那就是说这个变也是你人为的操作造成的,比方说你释放窗体,再创建窗体。操作系统不会自动改变这个地址的是不,我想也是,呵呵!

是二级指针,主要原因是因为随操作系统的运行,资源的地址可能会发生变化,而handle就保存资源的地址,这样无论资源怎么变,handle不变,总能通过handle找到资源
呵呵,首先我说的肯定是正确的,这是我在一个视频听到的,举个例子吧,一个窗体创建的时候操作系统给它分配了一块空间,然后句柄保存这块内存的地址,通过句柄就可以找到这个窗体,对吧,然后释放窗体,之后再创建这个窗体,他的地址变了吧,但是句柄就是个变量,它的名字始终不变
我想操作系统也是可能改变的,当程序启动操作系统会把程序从虚拟内存影射到真正的物理内存上,这个时候地址肯定是要发生变化的

句柄是一种资源的标识,操作系统要管理和操作这些资源,都是通过句柄来找到对应的资源的.句柄有点像指针.资源在系统中也要占据一块内存,所以我们如果要索引这个内存,就是通过句柄来实现的.