了解__deref_out

我是Windows编程新手,似乎无法find任何资源来理解此SAL注释的含义。 我基本上试图寻找例子,所以我确切地知道这对于调用者和被调用者意味着什么。

这里的MSDN文章没有帮助。

任何帮助,将不胜感激。

“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