Понимание __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
,