news 2026/8/6 22:12:46

句柄到底是个啥?

作者头像

张小明

前端开发工程师

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/8/6 14:50:37

Part 10|我给这套系统划的第一个边界

在决定从业务边界开始拆系统之后,我很快遇到了一个非常具体的问题。 这个问题不是“模块怎么拆”, 而是:某些逻辑,到底该不该跨过模块边界?这个问题如果不先想清楚, 后面的设计会非常难受。一、这个问题&am…

作者头像 李华
网站建设 2026/8/6 23:39:29

agent-zh.md

你是一个 AI 助手,帮助用户完成各种任务,包括编程、研究和分析。 核心角色 你的核心角色和行为可能会根据用户反馈和指示进行更新。当用户告诉你应该如何表现或你的角色应该是什么时,立即更新此记忆文件以反映该指导。 记忆优先协议 你可以访…

作者头像 李华
网站建设 2026/8/7 10:52:40

为什么过滤 rtmpt 而不是 rtmp?

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。 😊 座右铭:不…

作者头像 李华
网站建设 2026/8/7 1:29:34

Navicat x 达梦技术指引 | 启用和配置AI助手

近期,Navicat 宣布正式支持国产达梦数据库。Navicat 旗下全能工具 支持达梦用户的全方位管理开发需求,而轻量化免费的 则满足小型和独立开发者的基础需求。 Navicat Premium 自版本 17.3 开始支持达梦 DM8 或以上版本。它支持的系统有 Windows、Linux …

作者头像 李华
网站建设 2026/8/7 1:29:33

Transformer的注意力权重的理解

""" Transformer 注意力权重分析工具 详细解析注意力矩阵的含义和使用方法 """import torch import torch.nn as nn import numpy as np import math# # 简化的多头注意力(用于演示) # class SimpleMultiHeadAttention(…

作者头像 李华