句柄是什么?Windows结构体里面句柄的作用( 四 )


三、总结:

句柄是什么?Windows结构体里面句柄的作用

文章插图
下面,我们再回头看一看博文开头说的叙述不当之处,说他们不当是因为不是完全错误:第一点,确实句柄有管理内存地址变动之用,但是并不只是这个作用,内核对象访问级别、文件是否打开都是和他相关的;第二点,指向指针的指针,看得出来作者也是认真思考了的,但是他忽略了句柄包含的其他功能和管理内存地址的作用 。
那么到这里对于句柄你应该非常理解了,在此基础我们在Windows编程上是不是可以有一些启发:
1、通用句柄HANDLE和特殊句柄一般情况下是可以相互转换的,但是有时候会出错 。
2、如果不考虑跨平台移植的话,应该多采用Windows SDK提供的内存管理函数,这样可以获得更好的内存管理 。
3、C语言的内存分配函数的实现都是依靠使用GMEM_FIXED调用Windows SDK的内存分配函数的 。
注意可能在新的VS2005等系列编译器中看不到本文说的一些内容,因为在VC6时候有些代码还不是那么完善,所以给了我们机会去挖掘潜在的内容 。至于微软苦心积虑不让我们看到句柄的真实定义那是必然的,试想一下主要的内存对象结构都被摸清楚了,那么黑客们还不反了天了 。
至此,用户应该明白句柄是什么了吧,其实在不同的领域中,句柄的作用都是差不多的,可以作为一个标识的作用 。

推荐阅读