社区
C语言
帖子详情
什么是句柄???
to2008
2001-05-11 10:08:00
也许我看书太不认真,我找不到C++对于句柄的定义。
请告诉我“句柄”的精确定义,并告之出自哪本书,第几页。
多谢!
...全文
474
6
打赏
收藏
什么是句柄???
也许我看书太不认真,我找不到C++对于句柄的定义。 请告诉我“句柄”的精确定义,并告之出自哪本书,第几页。 多谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
holyfire
2001-05-11
打赏
举报
回复
就是一个标识号,如何实现不需要关心,接口会根据句柄来区分不同的同类对象(广义)就是了。
jxuer
2001-05-11
打赏
举报
回复
think in c++(P52)是这样说的,句柄是一个指向一个结构的指针,
而这个结构的定义隐藏在实现文件中
hello_wyq
2001-05-11
打赏
举报
回复
句柄就是这样的---》!
BenHubert
2001-05-11
打赏
举报
回复
我的理解,
说白了就是一个整型数,这个整型数和某一个对象相对应,
就好像学生的学号 和 学生相对应一样,
qqchen79
2001-05-11
打赏
举报
回复
我以前发的关于Windows中Handle的文章,差不多啦!
_______________________________________________________________________________
从用户(操作系统调用的用户,程序员)的角度来看,最好的理解是对进程中打开/使用的系统对象(如:文件)的索引,也就是说,
通过Handle,可以找到打开/使用的系统对象的一些状态信息(如:文件的访问权限等)。对程序员来说,知道handle域进程打开对象
的一一对应关系就足够了。
当然,这只是一种理解,任何将Handle做为指针或索引的程序访问方法都是不可取的(事实上,由于handle指向/索引的内存存
在于系统空间内,这种访问方法也没有任何可行性)。Handle本身隐藏了系统的内部实现,也就是说,M$可以选择使用指针或索引来实现
Windows系统的handle,而且这种改变将不会对应用程序造成任何影响。可以想象以下C语言中的文件使用:我们通常定义了一个FILE结构
的指针,然后使用一组函数操作它(fread/fopen/fwrite),但我们极少(或者说不建议)直接访问FILE结构的成员,这样,即使C语言
的实现中改变了FILE结构,也不会影响到我们的程序,Handle也是同样道理。
事实上,MS也确实在不同的Window中使用了不同的Handle类型,甚至不同的对象索引表的数据结构。WindowsNT4.0中,打开对象连续存
放在一张表中(结构数组),Handle是进程打开对象在这张表中相对表首的偏移量(即非指针叶非索引);而在Windows2K中,对象表采
用了三重索引结构,Handle则更接近于对象的索引(这种转化要一些简单的计算)。
Handle和对象表是一个进程的私有财产(包括所谓进程Handle),当子进程创建时,系统会把设有继承属性的Handle复制道子进程的对
象表中。所以,在进程之间简单的传递Handle的值是完全没有意义的。而进程号则是系统为一个进程指定的唯一识别号,不要搞混了。
另外,“Windows”的内存可以东则完全是陈年旧事,在Windows95/98/NT中,每个进程有独立的进程空间,进程之间不会出现任何地址冲突,
还有移动内存的必要吗?至少从进程对内存的实用上来说,可以认为内存是静态的。
Cowboy22
2001-05-11
打赏
举报
回复
搜一下"句柄"你会得到一箩筐,其中不乏精彩比喻
我们究竟该如何获取桌面
句柄
???
本文介绍了如何在Windows中正确地获取桌面
句柄
的过程。通过使用FindWindow和FindWindowEx函数,作者给出了一个具体的实现步骤,并澄清了GetDesktopWindow函数所获取的实际内容。
怎么得到一个分割后的窗口指针或
句柄
???
本文讨论了如何在SDI程序中获取分割窗口的
句柄
或指针,特别是针对由CSplitterWnd创建的子窗口。提供了使用CSplitterWnd::GetPane方法的具体步骤和示例代码。
java
句柄
无效_Java开发网 - java.io.IOException:
句柄
无效???
博主在使用Java编程时遇到了`java.io.IOException:
句柄
无效`的错误,该错误出现在FileInputStream的read方法中。博客讨论了这个问题,尽管已经检查了代码并深入研究,但仍然无法找到解决方案。
句柄
无效可能意味着资源访问出现了问题,尤其是使用`InputStreamReader(System.in)`时。博客中提出了对`:191`这一参数的疑问,这是文件中抛出异常的行号。博主期待得到专家的指导以解决这个谜题。
C# 调用win32API 获取进程
句柄
有毛用???
本文介绍了一种使用C#代码控制屏幕键盘(osk.exe)显示的方法,通过获取进程
句柄
并利用ShowWindowAsync函数实现窗口操作。同时,提供了一个有效的示例代码,展示了如何定位并控制特定的屏幕键盘窗口。
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章