【问题标题】:C++ _Inout_updates_bytes_ syntax [duplicate]C++ _Inout_updates_bytes_ 语法 [重复]
【发布时间】:2021-11-21 16:20:39
【问题描述】:

我正在使用 mmeapi.h 库并遇到了函数waveOutUnprepareHeader(),我想知道它的语法是如何工作的。

mmeapi.h

DECLARE_HANDLE(HWAVEIN);
DECLARE_HANDLE(HWAVEOUT);
FAR *LPWAVEHDR;

minwindef.h

typedef unsigned int        UINT;

mmeapi.h

waveOutUnprepareHeader(
    _In_ HWAVEOUT hwo,
    _Inout_updates_bytes_(cbwh) LPWAVEHDR pwh,
    _In_ UINT cbwh
    );
  1. _Inout_updates_bytes_(cbwh) 有什么作用?
  2. DECLARE_HANDLE 有什么作用?

【问题讨论】:

    标签: c++ visual-c++


    【解决方案1】:

    这些是 Microsoft-specific macros,它们是 SAL 的一部分。

    微软有this 来说明这些宏的用途:

    SAL 是 Microsoft 源代码注释语言。通过使用源代码注释,您可以明确代码背后的意图。这些注释还使自动化静态分析工具能够更准确地分析您的代码,显着减少误报和漏报。

    您会发现它们散布在 Microsoft 自己的头文件中,因此可能他们发现它们有助于检测编码错误。 Visual Studio 有一个使用它们的代码分析工具,请参阅:

    https://docs.microsoft.com/en-us/cpp/code-quality/code-analysis-for-c-cpp-overview

    DECLARE_HANDLE 的用途描述为here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-31
      • 2013-02-16
      • 2012-02-07
      • 2012-03-14
      • 2018-03-10
      • 1970-01-01
      相关资源
      最近更新 更多