打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
判断句柄是否有效
句柄相当于一个指向指针的指针,指向指针的指针同样是指针,所以暂且认为它是一个指针,那么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
);
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
对句柄的进一步理解
将应用程序从 OS/2 迁移到 Linux 上: 第 2 部分,内存管理、IPC 和文件处...
【转帖】常用断点设置 & 常用断点设置API函数原型
句柄和指针的区别
句柄的本质
进程线程伪句柄转为真实句柄
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服