Agn*_*ian 4 c c++ winapi hresult visual-studio-2008
我只是看了HRESULTVS2008 中的定义.WinNT.h有以下行:
typedef __success(return >= 0) long HRESULT;
Run Code Online (Sandbox Code Playgroud)
究竟是什么意思?它对我未经训练的眼睛看起来甚至不像C或C++
这是一个注释.简而言之,
__success(expr)
Run Code Online (Sandbox Code Playgroud)
表示expr描述功能被认为成功的条件.对于返回的函数HRESULT,该条件是返回值(因为HRESULT是a long)是非负的.返回的所有函数HRESULT都因此而应用此注释typedef.
可能更多的细节比你想要的关于SAL注释的 MSDN ,从Win32和成功和失败注释的HRESULT的演变.