Что делает этот макрос?__success (return> = 0) долго - PullRequest
3 голосов
/ 14 ноября 2010

В заголовочном файле Windows WinNT.h HRESULT определяется следующим образом:

typedef __success(return >= 0) long HRESULT;

Проведя некоторые исследования, я узнал, что макрос «__success» является частью языка аннотаций исходного кода Microsoft SAL и определен в sal.h . Но я не могу понять, что это делает или как это делает.

Заранее спасибо.

Todd

1 Ответ

5 голосов
/ 17 ноября 2010

Этот пост в блоге на MSDN объясняет, что конкретно означает __success: он указывает, что функция завершилась успешно, если возвращает значение HRESULT> = 0.

Аннотации - это просто способ описать что-то о фрагменте кода - сами по себе они ничего не «делают», но есть возможность использовать внешние инструменты для проверки семантики таких аннотаций.

...