news 2026/5/1 4:52:18

句柄到底是个啥?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
句柄到底是个啥?

文章目录

  • 1、什么是句柄?
  • 2、句柄与普通指针的区别?

1、什么是句柄?

句柄(Handle)是一个是用来标识对象或者项目的标识符,可以用来描述窗体、文件等,值得注意的是句柄不能是常量—引自科学百科 通过参考网上各路大神的解释,个人认为:句柄就是健康码,它的作用就是让你找到所需的对象去到了何处,因为你始终都可以根据健康码找到对象的所在地,然后找到对象给他做核酸检测。健康码(句柄值)是国家(操作系统)分给你的,你没有自定义的权利。 在操作系统中,我们想要操作一个对象,就要知道它的地址,但是对象的内存地址总是变化,因为在windows系统中的内存管理一般会将当前处于空闲状态的对象的内存释放掉,当需要访问的时候再重新提交分配物理内存,从而导致对象的物理地址是变化的。此时windows就搞了一个玩意—句柄,句柄用来管理对象的地址(句柄表),不管对象的地址如何变化,我都可以通过访问句柄来拿到对象的实时地址,进而操作对象。句柄值是操作系统给的,你不能定义。

2、句柄与普通指针的区别?

句柄更偏向于索引表,指针的所指物理内存地址的索引
指针指向系统中物理内存的地址,而句柄是windows在内存中维护的一个对象内存物理地址列表的整数索引,句柄是一种指向指针的指针。也就是管理指针(内存地址)的工具。
句柄的作用范围也是存在局限性的,你只能用句柄最终调用到对象,并作一些系统允许你做的事情,但是你拿到指针的话就能干任何事情了,比如破坏对象。当然,句柄的优点也是显而易见的,句柄很明显更方便管理,部分场景处理对象时比指针快。

句柄:就是用来维护进程或者系统范围内的一个标识。
就比如我们去访问一个文件的时候,同一时刻,只能有一个进程访问,不能有其他,这个句柄就是这个文件锁。
句柄是一个动态的地址,用来记录当前对象的分配,很明显就只有一个。
任何一个对象都有一个句柄。

C# 中因为没有指针 所以指的是windows窗口中(包括窗口本身,以及不可见的窗口?) 每个控件对应的一个找寻得到它们的地址(实际是内存指针) 以便编程时候能够迅速定位它们,设置或者获取这些控件的状态、值等操作。

WPF窗体下: 窗体:IntPtrhwnd=newWindowInteropHelper(this).Handle;控件:IntPtrhwnd=((HwndSource)PresentationSource.FromVisual(uielement)).Handle;// MainWindow.xaml.csprivatevoidButton_Click(objectsender,RoutedEventArgse){varwih=newSystem.Windows.Interop.WindowInteropHelper(this);varhWnd=wih.Handle;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 4:51:34

回溯算法详解:从原理到实战(C++代码实现)

前言回溯算法是基于**深度优先搜索(DFS)**的经典算法思想,核心是“尝试-回退”,通过遍历解空间找到所有符合条件的解。它广泛应用于排列、组合、子集等问题,本文将结合LeetCode经典例题,用C实现回溯算法&am…

作者头像 李华
网站建设 2026/5/1 2:29:00

webrtc 联播数据编码发送流程

文章目录webrtc 联播数据编码发送流程1 创建 VideoSendStreamImpl2 创建RTPSenderVideo3 创建编码器4 编码后数据流向webrtc 联播数据编码发送流程 1 创建 VideoSendStreamImpl WebRtcVideoChannel::WebRtcVideoSendStream::RecreateWebRtcStream media/engine/webrtc_video_…

作者头像 李华
网站建设 2026/4/23 13:28:12

JavaScript——js基础(详细 全面),适合新手小白,收藏这篇就够了

目录 前言: JavaScript 是什么?JavaScript 简介 1.JavaScript历史 2.JavaScript 具有以下特点 第一个JavaScript程序 1.在脚本文件中编写JavaScript代码 2.JavaScript代码执行顺序 基本语法 1.变量 2.数据类型 3.算术运算符 4.赋值运算 5.字符串运算符…

作者头像 李华
网站建设 2026/4/30 6:46:39

守护智慧校园数字命脉:微隔离构建全局可视、精准防护的内网安全

引言:象牙塔内的内网安全隐忧高校作为人才培养和知识创新的主阵地,其网络系统已演进为支撑核心教学科研、承载海量师生数据与关键管理业务的复杂数字中枢。“智慧校园”的建设虽然实现了教学与管理的跃升,却也同步放大了内网安全的脆弱性。当…

作者头像 李华
网站建设 2026/4/30 13:42:34

学习笔记——写时复制(Copy-on-Write)

写时复制(Copy-on-Write)技术一、核心概念写时复制(Copy-on-Write,简称COW)是一种资源管理策略,其核心思想是:多个调用者最初共享同一资源,只有当某个调用者尝试修改资源内容时&…

作者头像 李华