news 2026/6/10 15:52:57

句柄到底是个啥?

作者头像

张小明

前端开发工程师

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/6/10 19:12:40

silvaco学习记录(九)GaNdiode的瞬态正弦波信号仿真

最近在看微波注入信号的方面文章,发现常用的就是阶跃信号和正弦波信号,在atlas中阶跃信号可以很方便的直接加在电极上,但当我学习到正弦波信号的时候,耗费了很长时间,我起初在手册里看到了sin相关的语句,在…

作者头像 李华
网站建设 2026/6/10 13:09:02

基于SpringBoot的超能驾校线上学习管理系统的设计与实现(毕业设计项目源码+文档)

课题摘要在驾培行业数字化转型加速、传统驾校学习管理存在 “理论学习碎片化、练车预约低效、考核进度不透明、教学数据难统计” 的痛点背景下,基于 SpringBoot 的超能驾校线上学习管理系统构建具有重要的行业与用户价值:从学员层面,系统整合…

作者头像 李华
网站建设 2026/6/10 13:45:58

基于大数据的电子产品销售数据分析系统源码设计与文档

前言在电子产品市场竞争加剧、销售数据呈爆炸式增长的背景下,传统销售分析存在 “数据维度割裂、实时性差、预测精度低、决策支撑弱” 的痛点,难以满足企业精准洞察市场、优化产销策略的需求。基于大数据的电子产品销售数据分析系统构建具有重要的商业与…

作者头像 李华