【问题标题】:C6387 warning with WTSEnumerateSessionsEx带有 WTSEnumerateSessionsEx 的 C6387 警告
【发布时间】:2021-11-04 23:49:37
【问题描述】:

我在尝试拨打 WTSEnumerateSessionsEx 时收到 C6387 警告。这是我的代码(按预期工作):

WTS_SESSION_INFO_1* info=NULL;
DWORD info_count = 0;
DWORD level = 1;
WTSEnumerateSessionsEx(WTS_CURRENT_SERVER_HANDLE, &level, 0, &info, &info_count);

谁能解释发生了什么以及如何解决这个问题?

这是 Visual Studio 2019 的屏幕截图:

【问题讨论】:

  • 但是docs.microsoft.com/en-us/cpp/code-quality/c6387 有什么不清楚的地方?通过注解 api 不要在第一个参数中等待 0,而是通过 0。这简直是糟糕的注解。忽略此警告
  • 感谢您的玩具回答,RbMm。我很确定他们从零开始计算参数,并认为问题出在“水平”上。现在我看到 WTS_CURRENT_SERVER_HANDLE 为 NULL。我会尝试向 MS 报告错误的注释。

标签: c++ visual-studio winapi warnings


【解决方案1】:

正如 RbMm 所提到的,这是一个误导性的函数注释。我已经向 MS 填写了report,希望他们有一天能修复它。至于现在警告是通过这种方式抑制的:

#pragma warning(suppress: 6387)
WTSEnumerateSessionsEx(WTS_CURRENT_SERVER_HANDLE, &level, 0, &info, &info_count);

【讨论】:

  • 您应该修改您的报告以包含解决方案 - 第一个参数应注释为 _In_opt_ 而不是 _In_
猜你喜欢
  • 2021-11-07
  • 2021-12-15
  • 1970-01-01
  • 2021-04-02
  • 2019-09-04
  • 2016-11-09
  • 2017-08-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多