• 句柄handle c++


      1、句柄是什么?

      在windows中,句柄是和对象一一对应的32为无符号整数值。对象可以映射到唯一的句柄,句柄也可以以映射到唯一的对象。

      2、为什么我们现在需要句柄?

      windows需要向程序员提供必要的编程接口,在这些编程接口中,允许程序员访问、创建和销毁对象。但是,出于封装性考虑,windows并不想向coder返回指针。指针包含了太多的信息。首相,指针给出了对象存储的exact adds;其次,要操作一个指针,coder必须知道指针所指对象的内部结构特征,that's to say,windows必须向程序员暴露相应的数据结构,而这些数据结构也许是操作系统对coder隐藏的。

      如果说COM技术向coder隐藏了数据,只暴露了接口并只允许按接口定义的方法操作数据的话,handle这种方式则允许你按自己的方式直接操作数据,but,windows有不向你直接暴露数据结构。直接操作数据是程序猿需要的,不暴露数据是windows所需要的。

      句柄封装方式实现了各自所需。

      3、句柄如何与对象映射?

      封装别后,必须有一个地方可以实现解码,以实现句柄和对象的相互转换。在windows中,存在两种映射方式:

      a/ 全等映射  句柄本身就是一个pointer,映射在这里只是 类型转换。进程实例句柄、模块句柄、资源句柄

      b/ 基于表哥的映射 这是对象pointer与句柄之间 the most normal映射机制。操作系统创建表格,并保存所有要考虑的对象。需要穿件新对象是,要先在表格中找到空入口,然后把表示对象的数据填入其中。当对象被删除是,他的数据成员和其在表中的入口被释放。

      4、

    不要说话
  • 相关阅读:
    【最强】微软Tech Summit 2017动手实验室教程
    【心得体会】我考完MOS我明白了…
    惊喜哈哈哈
    89C51单片机的学习
    cookie和session
    Ajax
    ORM创建多表以及多表的增删改查
    orm单表查询和模糊查询
    django的ORM
    django的视图函数
  • 原文地址:https://www.cnblogs.com/sxudk/p/3793451.html
Copyright © 2020-2023  润新知