[转载]句柄和指针

句柄是一些表的索引也就是指向指针的指针,句柄和指针都是地址,句柄是Windows编程的一个关键性的概念,编写Windows应用程序总是要和各种句柄打交道。
   所谓句柄,就是一个唯一的数,用以标识许多不同的对象类型,如窗口、菜单、内存、画笔、画刷等。在Win32里,句柄是指向一个“无类型对象”(void*)的指针,也就是一个4字节长的数据。
无论它的本质是什么,句柄并不是一个真正意义上的指针。从构造上看,句柄是一个指针,尽管它没有指向用于存储某个对象的内存位置。事实上,句柄指向一个包含了对该对象进行的引用的位置。
句柄的声明是这样的:
typedef void *HANDLE
由于Windows是一个多任务操作系统,它可以同时运行多个程序或一个程序的多个副本。这些运行的程序称为一个实例。为了对同一程序的多个副本进行管理,Windows引入了实例句柄。Windows为每个应用程序建立一张表,实例句柄就好象是这张表的一个索引。
  不同在于:
  1、句柄所指的可以是一个很复杂的结构,并且很有可以是与系统有关的,比如说上面所说的线程的句柄,它指向的就是一个类或者结构,他和系统有很密切的关系,当一个线程由于不可预料的原因,而终止时在系统就可以回它所占用的资料,如CPU,内存等等,反过来想可以知道,这个句柄中的某一些项,是与系统进行交互的。由于Windows系统,是一个多任务的系统,它随时都可能要分配内存,回收内存,重组内存。
  2、指针它也可以指向一个复杂的结构,但是通常是用户定义的,所以的必需的工作都要用户完成,特别是在删除的时候。 但在VC++6.0中也有一些指针,它们都是处理一些小问题才用的,如最常见的字符的指针,它也是要用户处理的如果你动态分配了内存;但是Cstring就不要用户处理了,它其实是VC++中的一个类,所以的操作都由成员函数完成,产生(分配)由构造函数,删除(回收)由析构函数完成。
<script type="text/javascript">var tagarray = ['逆向工程','防毒','资源','捆绑','XSS','ratproxy','90hackit','rsa','收集','飘絮','源代码','免杀','架构','A1Pass','MyCcl','密码效验和','核心溢出','ms08067','误区','ms08-067','讨论','内网','PeakSharp','隐藏驱动','百度','DataExplorer','Serv-U','Buffer','Office','WPS','Overflow','Microsoft','内核编程','DDoS','EasyRecovery','Ghost','驱动编程','感染','机器狗','Oracle','招聘','猎头','属主','手机号','数据恢复','IIS'];var tagencarray = ['%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B','%E9%98%B2%E6%AF%92','%E8%B5%84%E6%BA%90','%E6%8D%86%E7%BB%91','XSS','ratproxy','90hackit','rsa','%E6%94%B6%E9%9B%86','%E9%A3%98%E7%B5%AE','%E6%BA%90%E4%BB%A3%E7%A0%81','%E5%85%8D%E6%9D%80','%E6%9E%B6%E6%9E%84','A1Pass','MyCcl','%E5%AF%86%E7%A0%81%E6%95%88%E9%AA%8C%E5%92%8C','%E6%A0%B8%E5%BF%83%E6%BA%A2%E5%87%BA','ms08067','%E8%AF%AF%E5%8C%BA','ms08-067','%E8%AE%A8%E8%AE%BA','%E5%86%85%E7%BD%91','PeakSharp','%E9%9A%90%E8%97%8F%E9%A9%B1%E5%8A%A8','%E7%99%BE%E5%BA%A6','DataExplorer','Serv-U','Buffer','Office','WPS','Overflow','Microsoft','%E5%86%85%E6%A0%B8%E7%BC%96%E7%A8%8B','DDoS','EasyRecovery','Ghost','%E9%A9%B1%E5%8A%A8%E7%BC%96%E7%A8%8B','%E6%84%9F%E6%9F%93','%E6%9C%BA%E5%99%A8%E7%8B%97','Oracle','%E6%8B%9B%E8%81%98','%E7%8C%8E%E5%A4%B4','%E5%B1%9E%E4%B8%BB','%E6%89%8B%E6%9C%BA%E5%8F%B7','%E6%95%B0%E6%8D%AE%E6%81%A2%E5%A4%8D','IIS'];parsetag();</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值