谁能给我介绍下句柄的意思。。
获取窗口的句柄是怎么获取的。。还有获取了句柄。返回值是什么。。只有调用api函数才能获取句柄吗?api函数。。都是哪些dll文件的。。api函数原理是什么。。。能讲详细点...
获取窗口的句柄是怎么获取 的。。还有获取了句柄。返回值是什么。。
只有调用api函数才能获取句柄吗?
api函数。。都是哪些dll文件的。。
api函数原理是什么。。。
能讲详细点就讲详细点啊我会追加高分的 谢谢。。。 展开
只有调用api函数才能获取句柄吗?
api函数。。都是哪些dll文件的。。
api函数原理是什么。。。
能讲详细点就讲详细点啊我会追加高分的 谢谢。。。 展开
5个回答
展开全部
我说一下我的看法
仅供参考
句柄分为伪句柄和内核句柄
窗口的句柄即是伪句柄
而文件句柄即是内核句柄
句柄其实是一个索引
GUI窗口系统管理所有进程的主窗口与子窗口
这个系统中有一张表而句柄其实是一个索引
指向表中具体一项,这一项对应一个窗口
关于他的窗口名,窗口类名,窗口过程,窗口属性等
而关于内核句柄则在进程的结构体EPROCESS有所体现
EPROCESS就有一个关于进程所有打开文件句柄的域
你可以通过NTDLL.DLL的导出函数NtQueryObject来获取句柄所代表的Windows实体
因为你是微软的一套,而他是不会暴露他的他的那些结构还有怎样去管理这些内容.他只是提供一些封装在DLL中函数供程序员使用
常用的有几个kernel32.dll user32.dll gdi32.dll
可用VC下的DEPENDS.EXE去看导出函数api函数是去操作那些数据结构如进程,窗口 文件,互斥量
仅供参考
句柄分为伪句柄和内核句柄
窗口的句柄即是伪句柄
而文件句柄即是内核句柄
句柄其实是一个索引
GUI窗口系统管理所有进程的主窗口与子窗口
这个系统中有一张表而句柄其实是一个索引
指向表中具体一项,这一项对应一个窗口
关于他的窗口名,窗口类名,窗口过程,窗口属性等
而关于内核句柄则在进程的结构体EPROCESS有所体现
EPROCESS就有一个关于进程所有打开文件句柄的域
你可以通过NTDLL.DLL的导出函数NtQueryObject来获取句柄所代表的Windows实体
因为你是微软的一套,而他是不会暴露他的他的那些结构还有怎样去管理这些内容.他只是提供一些封装在DLL中函数供程序员使用
常用的有几个kernel32.dll user32.dll gdi32.dll
可用VC下的DEPENDS.EXE去看导出函数api函数是去操作那些数据结构如进程,窗口 文件,互斥量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
句柄相当于人的身份证. 世界上只有一个你
句柄也一样,他也是唯一的标识.
句柄是一个标识怎么会有返回值呢?
API 或 用对象 都可以获取句柄
API的dll文件除了系统的 你也可以写自己的API DLL文件.所以没法数.
API的原理就是微软说:"告诉你这是API已经很不错了,不会开源的"
句柄也一样,他也是唯一的标识.
句柄是一个标识怎么会有返回值呢?
API 或 用对象 都可以获取句柄
API的dll文件除了系统的 你也可以写自己的API DLL文件.所以没法数.
API的原理就是微软说:"告诉你这是API已经很不错了,不会开源的"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
原创通俗点的解释
句柄,既然说柄,你完全可以把它作为一个把柄来看
举个例子,相当于一个箱子,外面露出来很多把柄,每一个把柄对应一个东西,你抽出某一个把柄,就把这个东西从箱子里面拿出来了,然后就可以利用这个东西进行一些系列操作。用完了以后,你将他重新放回箱子或者丢弃,就相当于切换句柄和释放句柄。
当然,前提是你必须将这些东西放进箱子,并把把柄露出来。这就相当于在编程的时候,你想要用到一些东西,就必须先创建这些东西对应的句柄,句柄可以对应很多东西:文件、窗口、设备、进程等等。
句柄,既然说柄,你完全可以把它作为一个把柄来看
举个例子,相当于一个箱子,外面露出来很多把柄,每一个把柄对应一个东西,你抽出某一个把柄,就把这个东西从箱子里面拿出来了,然后就可以利用这个东西进行一些系列操作。用完了以后,你将他重新放回箱子或者丢弃,就相当于切换句柄和释放句柄。
当然,前提是你必须将这些东西放进箱子,并把把柄露出来。这就相当于在编程的时候,你想要用到一些东西,就必须先创建这些东西对应的句柄,句柄可以对应很多东西:文件、窗口、设备、进程等等。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
窗口句柄可以通过调用一个窗口函数取得.另外如果知道窗口的名称可以使用findwindow来取得.在SDK中窗口句柄的类型是HWND。除了API获取句柄之外,MFC中可以通过CWnd的函数GetSafeHWnd()取得。
api函数是WINDOWS应用程序接口,通过它可以实现应用程序的功能。建议看一下WINDOWS程序设计,和WINDOWS核心编程。
api函数是WINDOWS应用程序接口,通过它可以实现应用程序的功能。建议看一下WINDOWS程序设计,和WINDOWS核心编程。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般地,窗口的句柄是通过Windows提供给你的编程接口,也就是API来获取的,句柄的本质就是一个对Windows有意义,对应用程序来说却毫无意义的一串数值。你可以把句柄看作是引用“由Windows内核管理的、应用程序无法直接访问的”内部数据结构的索引。
在应用层上,我们只能通过Windows提供给你的接口来获取句柄,我们是无权访问Windows内部的数据结构的,也就是说,句柄只是通过API来获取(直接或间接的)。
Windows提供了大量的API,分布在N个Dll库里,分别实现不同的功能,其中最重要的三个库是Kernel32.dll、Gdi32.dll、和User32.dll,他们提供了最基本的API函数,如Kernel32.dll提供了系统操作,如打开进程,创建文件等,Gdi32.dll提供了图形操作的API函数,如GetDC,TextOut等,而User32.dll是每个窗口程序必不可少的,因为几乎所有的窗口操作API都在那里。
Windows是分层设计的,层与层之间互相隔开,上一层使用下一层提供的功能,向更高一层提供服务。API是Windows提供给程序员的用户层的编程接口,当程序调用API时,API会转而调用它下一层的接口,并最终进入核心层来实现程序员的操作,而这些核心层的东东,应用程序是不能访问的,只能通过用户层提供的API来间接访问。
我所说的,仅仅是针对Ring3级别的“应用程序”,Ring0级别的,如驱动等,他们可以直接访问核心的数据结构等,可以不用API。
在应用层上,我们只能通过Windows提供给你的接口来获取句柄,我们是无权访问Windows内部的数据结构的,也就是说,句柄只是通过API来获取(直接或间接的)。
Windows提供了大量的API,分布在N个Dll库里,分别实现不同的功能,其中最重要的三个库是Kernel32.dll、Gdi32.dll、和User32.dll,他们提供了最基本的API函数,如Kernel32.dll提供了系统操作,如打开进程,创建文件等,Gdi32.dll提供了图形操作的API函数,如GetDC,TextOut等,而User32.dll是每个窗口程序必不可少的,因为几乎所有的窗口操作API都在那里。
Windows是分层设计的,层与层之间互相隔开,上一层使用下一层提供的功能,向更高一层提供服务。API是Windows提供给程序员的用户层的编程接口,当程序调用API时,API会转而调用它下一层的接口,并最终进入核心层来实现程序员的操作,而这些核心层的东东,应用程序是不能访问的,只能通过用户层提供的API来间接访问。
我所说的,仅仅是针对Ring3级别的“应用程序”,Ring0级别的,如驱动等,他们可以直接访问核心的数据结构等,可以不用API。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询