【问题标题】:Detecting the use of HRESULTs as bools检测 RESULTs 作为书籍的使用
【发布时间】:2010-10-06 15:46:36
【问题描述】:

我们有大量代码被重构,所以原来的 C++ 代码现在变成了 COM。

过去几天我一直在寻找我们错过了这样一个事实的地方,即以前返回 bool 的函数现在返回 HRESULT(问题是由于 S_OK == false )。

有没有办法检测HRESULT 被用作bool 的地方(反之亦然)?

我们使用的是 Visual Studio 2005 (VS8) Professional。

除了@Steve 的出色建议,还有什么不涉及安装团队版的吗?

【问题讨论】:

    标签: c++ winapi com static-analysis hresult


    【解决方案1】:

    你在使用Code Analysis for C++吗?

    如果是这样,你应该看到

    C6214http://msdn.microsoft.com/en-us/library/yy6dx731.aspx

    C6217http://msdn.microsoft.com/en-us/library/z5aa1ca1.aspx

    同时验证您的源代码(通过#pragma)和项目选项不会禁用这些或其他重要警告。

    【讨论】:

    • 是的,我们正在使用 /W4 和 /WX 进行编译(将警告视为错误),但我们没有收到任何此类警告)。您发送的链接是针对 VS10 的,您知道它们是否与 VS8 相关吗? (不存在编译指示)
    • @Motti - 我的错 - 这些来自“C++ 代码分析”,而不仅仅是常规的编译器警告。见编辑。
    • 听起来很有希望,我从哪里下载它(我有 MSDN 订阅)
    • @Motti - 如果您在 MSDN 订阅下安装了 VS2005,则应该内置它。有关在 IDE 中找到它的位置,请参见此处:msdn.microsoft.com/en-us/library/6yz6c9dy(v=VS.80).aspx。这会大大减慢构建速度,因此我不会一直使用它。
    • @Motti - 这是在“团队版”中 - 您的订阅是否涵盖该内容?
    猜你喜欢
    • 1970-01-01
    • 2021-04-30
    • 2019-05-22
    • 1970-01-01
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多