码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • C++中HANDLE句柄的概念


    HANDLE:句柄,是WINDOWS用来表示对象的,是一个通用句柄表示。
    在WINDOWS程序中,有各种各样的资源(窗口、图标、光标等),系统在创建这些资源时为他们分配内存,并返回标示这些资源的标示号,即句柄。
    但是如果这些资源的位置变了呢?
    HANDLE是固定的,不会变,但是对象的地址会变,当对象在内存中的位置发生改变后,我们不能通过之前的对象指针找到对象。HANDLE能用来记录对象的最新地址。
    也就是说,HANDLE像是中间商,联络着WINDOWS API和看不见的对象,所以可以通过HANDLE让对象做事。(不能让我们知道对象的内存地址是因为操作系统怕受到不利操作)。

    各种HANDLE的定义,如HDC,HPEN,HINSTANCE等等,你会发现有这样一个声明:

    DECLARE_HANDLE(HDC);

    再把DECLARE_HANDLE这个宏展开:

    #define DECLARE_HANDLE(name) struct name##__ { int unused; }; 
    typedef struct name##__ *name


    用HDC替换上面的name:

    struct HDC__

    {

    int unused;

    };

    typedef struct HDC__ *HDC

    所以句柄就是一个指向某一结构的指针,这个结构体只有一个成员,它是一个整数。
    HANDLE的定义,在winnt.h头文件中:

    typedef PVOID HANDEL;

    PVOID是什么?

    typedef void *PVOID;

    HANDLE不过是一个指向void型,即无类型的指针,嗯,目前的指针是32位的吧.其实也不能说HANDLE是一种指针,它只充当一种索引的作用。
     

  • 相关阅读:
    鲜花销售管理系统,鲜花商城管理系统,鲜花网站毕业设计
    领夹直播麦克风常规的使用方法及方案说明
    解锁机器人技术的钥匙—《应用机器人学:运动学、动力学与控制技术》
    [附源码]JAVA毕业设计-高中辅助教学系统-(系统+LW)
    DeepinV20/Ubuntu安装postgresql方法
    Python自定义排序及实际遇到的一些实例
    英伟达的AI霸主地位会持久吗?
    浅谈双指针技巧(一)---通过双指针判断链表成环问题
    数字世界的探索者:计算机相关专业电影精选推荐
    vite+vue 项目使用 electron
  • 原文地址:https://blog.csdn.net/u011555996/article/details/127794053
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号