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

typedef __success(return >= 0) long HRESULT;

这到底是什么意思?在我未经训练的眼睛中,它甚至看起来都不像C或C++

最佳答案

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

__success(expr)

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

可能会比MSDN上SAL AnnotationsThe Evolution of HRESULT From Win32Success and Failure Annotations上的详细信息要多。

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

10-11 16:57