【问题标题】:CloseHandle():Return value check requireCloseHandle():返回值检查需要
【发布时间】:2010-01-25 16:21:32
【问题描述】:

我正在使用CloseHandle() 来关闭线程的句柄。 这是在程序结束时完成的,因此清理操作应该与 CloseHandle 的返回值无关

pc-lint 报错,忽略函数的返回值。

如果忽略返回值是否会有任何问题,请告诉我。

【问题讨论】:

  • 好吧,对于CloseHandle 的返回值,我们真的不能做任何有用的事情,因为即使函数失败了——那又如何呢?但是,在调试模式下,我仍然会检查返回值并断言。它可以检测到各种双重释放等。

标签: c winapi visual-c++ return-value


【解决方案1】:

简单的回答:我认为我从未在任何地方看到任何检查 CloseHandle 的返回值的代码,也没有一个 CloseHandle not 工作曾经是任何错误的原因我'在 Windows (YMMV) 上编程超过 15 年。

真正的答案:当然,您应该检查错误返回(在所有可能返回失败的方法中),假设您的应用程序已经有一个一致的错误处理框架,您只需使用它即可。未能始终如一地检查返回值并假设成功是代码后期出现更大、通常更难理解的失败的秘诀。

也就是说:在应用程序关闭期间,我会担心 CloseHandle 失败吗?可能不是。但这只是我的 2 美分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-02
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 2014-05-11
    相关资源
    最近更新 更多