码迷,mamicode.com
首页 > 其他好文 > 详细

判断句柄是否有效

时间:2014-05-09 11:47:10      阅读:354      评论:0      收藏:0      [点我收藏+]

标签:int   c   数据   cti   a   os   

句柄相当于一个指向指针的指针,指向指针的指针同样是指针,所以暂且认为它是一个指针,那么CreateFile相当于new 分配一个资源,让这个指针指到这块资源的首地址,那么当CloseHandle(handle)后等于是delete操作。此时handle的值还在,但是资源已被释放掉,那这个时候如果去访问这个句柄,就等于访问一个非法的内存资源。那么现在回到这个问题,如何判断句柄是否有效,就好比是回答如何判断指针是否有效。大家知道指针就是地址,如何判断地址是否有效呢?那就是判断这块地址上是否有有效数据了?那如何判断这个地址上有有效数据呢?微软提供了API,讲到这里问题基本就迎刃而解,希望楼主给分给我啊。答案另起一行 

答案: 
Tests a memory address to make sure it represents a currently active memory block that was allocated by the diagnostic version of new. 


BOOL AfxIsMemoryBlock( 
  const void* p, 
  UINT nBytes, 
  LONG* plRequestNumber = NULL 
); 

或者: 
Tests any memory address to ensure that it is contained entirely within the program‘s memory space. 


BOOL AfxIsValidAddress( 
  const void* lp, 
  UINT nBytes, 
  BOOL bReadWrite = TRUE 
); 

判断句柄是否有效,布布扣,bubuko.com

判断句柄是否有效

标签:int   c   数据   cti   a   os   

原文地址:http://www.cnblogs.com/lidabo/p/3708978.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!