c++ - 解释 HRESULT 的声明/定义

标签 c++ c visual-studio-2008 winapi hresult

刚刚看了VS2008中HRESULT的定义。 WinNT.h 具有以下行:

typedef __success(return >= 0) long HRESULT;

具体是什么意思?在我未经训练的眼中,它甚至不像 C 或 C++

最佳答案

这是一个注解。简而言之,

__success(expr)

表示expr描述了函数被认为成功的条件。对于返回 HRESULT 的函数,该条件是返回值(因为 HRESULT 是一个 long)是非负数。由于这个 typedef,所有返回 HRESULT 的函数都应用了这个注释。

SAL Annotations 上的 MSDN 中可能比您想要的更多详细信息| , The Evolution of HRESULT From Win32Success and Failure Annotations .

关于c++ - 解释 HRESULT 的声明/定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1985521/

相关文章:

c - 解析来自套接字的单个消息,其中包含 C 中的 2 个字符串

c++ - 在模板中匹配 C++ lambda 表达式

java - 什么是 Java 窗口的 Windows 注册类?

c++ - NetApiBufferFree 返回 ERROR_INVALID_PARAMETER(错误代码 87)

c++ - 警告 C4180 : qualifier applied to function type has no meaning; ignored

c - 该支票账户 C 程序的 Deposit() 函数

c++ - 奇怪的文本模式文件输出行为

visual-studio-2008 - VS 2008 Post Build Step 有趣的业务

c# - 编写 Visual Studio 插件?

sql - 查找与现有主键不匹配的列