DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 542 评论 :: 1615万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

句柄相当于一个指向指针的指针,指向指针的指针同样是指针,所以暂且认为它是一个指针,那么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 
); 

posted on   DoubleLi  阅读(2014)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2013-05-05 MFC Button控件自绘制----详细讲解
2013-05-05 MFC自绘控件学习总结第二贴
2013-05-05 MFC基础,MFC自绘控件学习总结.-- 转
2013-05-05 自绘控件的子类化方法
2013-05-05 ShellExecute用法 以及静态文本超链接
2013-05-05 VC++通用控件编程
2013-05-05 VC++程序调试
点击右上角即可分享
微信分享提示