Понимание __deref_out

Я новичок в программировании Windows, и я не могу найти какие-либо ресурсы для понимания, что означает эта аннотация SAL. Я в основном пытаюсь найти примеры, поэтому я точно знаю, что это значит и для звонящего, и для вызываемого.

Статья MSDN здесь не помогла.

Любая помощь будет оценена.

1 ответ

"deref" означает, что в переданном указателе есть уровень косвенности. Так что вместо:

DWORD Function(BYTE* pBuffer);
// pBuffer is a pointer to a BYTE buffer

Ты можешь иметь:

DWORD Function(BYTE** ppBuffer);
// pBuffer is a pointer to another pointer
// To access the buffer, dereference the pointer:
// BYTE* pBuffer = *ppBuffer;

"opt" означает, что значение является необязательным, то есть ppBuffer может быть равно nullptr,

Другие вопросы по тегам