社区
VB基础类
帖子详情
谁来解释下句柄?谢谢
libralibra
2004-12-06 10:26:51
好多api调用都要句柄,不知道什么意思,呵呵!
...全文
89
3
打赏
收藏
谁来解释下句柄?谢谢
好多api调用都要句柄,不知道什么意思,呵呵!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ezlj
2004-12-06
打赏
举报
回复
没事详细点:
句柄就是用来区分各种内存对象的唯一标识符号,是个32位整数。
有些是整个系统唯一(如窗口句柄),有些是当前进程或线程中唯一
(如线程句柄,全局的有另一个标识符)。
详细的可分为许多种,都是以H开头的。在VB中使用时全部都用Long。
常见的有窗口句柄(HWND),设备描述表句柄(HDC),内存句柄(HMEM),
文件句柄,进程句柄,线程句柄,笔的类型句柄(HPEN),字体句柄(HFONT),
区域句柄(HRGN)等等。
在申请句柄时是要占用资源的,分三类SYSTEM、USER、GDI。
而WINDOWS的资源是固定的,并不随内存的扩大而扩大,所以使用完以后一定要释放。
如果只用VB本身的代码一般是不会用到句柄的,但要是使用API函数的话,
大多数会使用。
补充几点:
在Windows系统中,句柄(我一直觉得这个词翻译得特别别扭)分为三大类:Kernel
Handle、User Handle和应用程序自定义的Handle。
Kernel Handle实际上是进程内Kernel对象的指针表索引,Kernel对象包括进程、文
件、信号等。但是MS为了掩盖着一事实,在系统启动时生成了一个所谓Obsfucator的值
(其实应该是Obfuscator,Microsoft Bugs(R) :),生成Handle后将Handle与这个值异
或后返回给应用程序,所以看到的Handle都是一些很大而且毫无意义的数字。这些
Handle和索引的对象是由KRNL32.DLL和VMM32.VXD共同管理的,所以称之为Kernel
Handle。
User Handle是用来标示窗口、DC等对象的,他们是真实的指针,但指向的并不是对象
的开头,有一个偏移量。同样,这些对象是由USER32.DLL管理的。
第三种Handle不过是应用程序自定义的一些索引之类的东东,具体的意义和应用程序相
关
dongge2000
2004-12-06
打赏
举报
回复
系统给用户的接口,就像你的身份证一样。
ezlj
2004-12-06
打赏
举报
回复
接口
易语言学习工具包
易语言工具,此工具需要下载YY才能打开,请下载着注意。
Linux
句柄
是什么
Linux
句柄
是什么
Windows
句柄
泄露学习总结
句柄
泄露实例分析 http://www.cnblogs.com/Leo_wl/p/5397274.html 在上篇文章.NET对象与Windows
句柄
(二):
句柄
分类和.NET
句柄
泄露的例子中,我们有一个
句柄
泄露的 例子。例子中多次创建和Dispose了DataReceiver和DataAnalyzer对象,但由于忘记调用DataAnalyzer的 Stop方法,导
句柄
和指针2
出处: 方塘2003.9.22 整理,之所以前面引用了 贾旭滨 先生的这段描述,因为他写的是在精彩!=== 重庆大学光电工程学院 贾旭滨 对
句柄
有下面的描述:
句柄
概念在WINDOWS编程中是一个很重要的概念,在许多地方都扮演着重要的角色。但由此而产生的
句柄
概念也大同小异,比如:>(Microsoft Press,by Richard Wilton)一书中
句柄
的概念是:在Windows环境中
VC怎么通过进程ID得到窗口
句柄
我试过网上的好多办法,到我这都不管用,气之又气.. 我通过CreateToolhelp32Snapshot 来枚举所有进程,接下来再通过Process32First以及Process32Next查看我想要的进程名,进程ID,得到进程ID后再通过OpenProcess函数得到了一个
句柄
,是HANDEL的,我想要的是HWND窗口
句柄
,进行强制转换是不可以的,用强制转换后的
句柄
去操作另外一个进程调用G
VB基础类
7,785
社区成员
197,585
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章