2014-11-21 40 views
1

我是Windows編程的新手,我似乎無法找到任何資源來理解此SAL註釋的含義。我基本上試圖尋找例子,所以我確切知道這對於調用者和被調用者意味着什麼。瞭解__deref_out

MSDN文章here沒有任何幫助。

任何幫助,將不勝感激。

+0

它只是_deref(被調用者將解引用指針並且它可能不是NULL)和_out(被調用者只會分配並且不期望傳入的值)的組合。更明確你不明白的東西。 – 2014-11-21 00:16:35

回答

2

「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; 

「選擇」 是指值是可選的,那就是ppBuffer可等於nullptr