Windows2000下句柄的概念? Windows98下的句柄是句柄表中的索引,那么Windows2000下句柄的概念是什么呢?是指针的指针?在Windows2000下如何查看进程的句柄表? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Jeffrey 说的:在windows2000中,句柄是用来标识放入进程的句柄表的该对象的字节数,而不是索引号本身! 照你那么说就有很多种了指针对应着一个数据在内存中的地址,得到了指针就可以自由地修改该数据。Windows并不希望一般程序修改其内部数据结构,因为这样太不安全。所以Windows给每个使用GlobalAlloc等函数声明的内存区域指定一个句柄(本质上仍是一个指针,但不要直接操作它),平时你只是在调用API函数时利用这个句柄来说明要操作哪段内存。当你需要对某个内存进行直接操作时,可以使用GlobalLock锁住这段内存并获得指针来直接进行操作。 -------------------------------------------------------------------- 句柄是指针的“指针”,使用句柄主要是为了利于windows在进程内存地址空间移动分配的内存块,以防止进程的内存空间被撕的四分五裂而存在过多的碎片。 -------------------------------------------------------------------------: 句柄是一些表的索引也就是指向指针的指针。间接的引用对象,windows可以修改对象的"物理"地址和 描述器的值,但是句柄的值是不变的。 ---------------------------------------------------------------------------- 句柄和指针都是地址,不同在于: 1,句柄所指的可以是一个很复杂的结构,并且很有可以是与系统有关的,比如说上面所说的线程的句柄,它指向的就是一个很类或者结构,他和系统有很密切的关系,当一个线程由于不可预料的原因,而终止时在系统就可以回它所占用的资料,如CPU,内存等等,反过来想可以知道,这个句柄中的某一些项,是与系统进行交互的。由于Windows系统,是一个多任务的系统,它随时都可能要分配内存,回收内存,重组内存。 2,指针它也可以指向一个复杂的结构,但是通常是用户定义的,所以的必需的工作都要用户完成,特别是在删除的时候。 但在VC++6.0中也有一些指针,它们都是处理一些小问题才用的,如最常见的字符的指针,它也是要用户处理的如果你动态分配了内存;但是Cstring就不要用户处理了,它其实是VC++中的一个类,所以的操作都由成员函数完成,产生(分配)由构造函数,删除(回收)由析构函数完成。 这是问专家的答案吧,我想问的是在Windows2000下如何查看进程的句柄表?谢谢各位再帮帮啊。 MFC 我把一个图片IplImage* dst画到picture控件上了,想在这个图片上用鼠标取一个位置,求指教 服务端放本机和放在其它机器传输速度差异5倍?? 网络入门级的问题,谁能给个例子啊??? 如何实现延时?? 有关控件开发好书希望大家介绍一下啊! 新手求大神解决一下 100分问面试之后收到公司的体检通知是不是就是准备录用了 关于一个用malloc分配内存的问题 又没有把十进制专程16进制和8进制的函数 关于跨进程发送字符串 调用隐藏没人会啊!真没人会么!在线等待 关于Remon Spekreijse编写的CserialPort类的问题,希望高手指教!!
在windows2000中,句柄是用来标识放入进程的句柄表的该对象的字节数,而不是索引号本身!
句柄是指针的“指针”,使用句柄主要是为了利于windows在进程内存地址空间移动分配的内存块,以防止进程的内存空间被撕的四分五裂而存在过多的碎片。 -------------------------------------------------------------------------:
句柄是一些表的索引也就是指向指针的指针。间接的引用对象,windows可以修改对象的"物理"地址和
描述器的值,但是句柄的值是不变的。
----------------------------------------------------------------------------
句柄和指针都是地址,不同在于:
1,句柄所指的可以是一个很复杂的结构,并且很有可以是与系统有关的,比如说上面所说的线程的句柄,它指向的就是一个很类或者结构,他和系统有很密切的关系,当一个线程由于不可预料的原因,而终止时在系统就可以回它所占用的资料,如CPU,内存等等,反过来想可以知道,这个句柄中的某一些项,是与系统进行交互的。由于Windows系统,是一个多任务的系统,它随时都可能要分配内存,回收内存,重组内存。
2,指针它也可以指向一个复杂的结构,但是通常是用户定义的,所以的必需的工作都要用户完成,特别是在删除的时候。
但在VC++6.0中也有一些指针,它们都是处理一些小问题才用的,如最常见的字符的指针,它也是要用户处理的如果你动态分配了内存;但是Cstring就不要用户处理了,它其实是VC++中的一个类,所以的操作都由成员函数完成,产生(分配)由构造函数,删除(回收)由析构函数完成。