CloseHandle()后,一定要再把这个句柄变量设定为NULL吗? CloseHandle()后,一定要再把这个句柄变量设定为NULL吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 设置为null是良好的编程习惯.不设置的话,可能这个句柄会被在下面误使用.而此时这个句柄代表的内核对象(句柄只是内核对象的索引)可能已经不是你所要的了.就回出现错落. 好的编程习惯是这样的,如果你CloseHandle了,然后又使用了这个Handle那么会导致操作失败。赋值NULL,则在使用前可以判断是否为NULL来判断handle的有效性。 顶楼上的,设置一下确实是好习惯if(hHandle != INVALID_HANDLE_VALUE){ CloseHandle(hHandle); hHandle = INVALID_HANDLE_VALUE;} Window核心编程上说关闭后同时要把它设为NULL.但是我们项目作第六期开发了,我看了一下没有谁在关闭后再把它设定为null INVALID_HANDLE_VALUE 的值是0xFFFFFFF,也就是-1,不是NULL。 sys0009先生/女士请问一下,我们的产品在做维护时,用户的系统崩掉了,但从各种日值都找不到问题,技术骨干们都作了几次CDI了还是找不到问题,今天早上我发现我们的代码里的所有的句柄都是关闭后没有设定为null。因这个导致系统崩溃的几率大吗? 编程习惯其实没有规定强制说一定要设置成NULL良好的编程习惯,能减少很多issue的产生~ 有可能。不过系统崩溃,你应该用windbg看下用户系统的minidump文件。 如果后面还用的话,就置为NULL,如果不用,就不必,当然,置为NULL总是不会错的。 不管后面用不用,设为NULL是没错的,好的编程习惯很重要,谁知道将来会不会再增加代码? 主窗口与子窗口的切换问题 请教一个图像颜色问题,谢谢了 如何提取字符或字符串 关于vc++的Custom AppWizard的问题 EditCtrl控件的问题 如何编写程序默认方式打开文件 寻求:自动寻找服务的解决方案? 关于深入浅出MFC里的问题不解,请火速帮忙? atl加入MarkupMSXML出错 在线麻烦进来看看 谢谢 非均匀B样条曲线 如何用SendMessage发送按钮双击事件 VC如何实现鼠标实时画线,跟画图板画线功能一样,在线等!
不设置的话,可能这个句柄会被在下面误使用.而此时这个句柄代表的内核对象(句柄只是内核对象的索引)可能已经不是你所要的了.就回出现错落.
if(hHandle != INVALID_HANDLE_VALUE)
{
CloseHandle(hHandle);
hHandle = INVALID_HANDLE_VALUE;
}
Window核心编程上说关闭后同时要把它设为NULL.
但是我们项目作第六期开发了,我看了一下没有谁在关闭后再把它设定为null
INVALID_HANDLE_VALUE 的值是0xFFFFFFF,也就是-1,不是NULL。
其实没有规定强制说一定要设置成NULL良好的编程习惯,能减少很多issue的产生~
有可能。
不过系统崩溃,你应该用windbg看下用户系统的minidump文件。