草庐IT

windows - 理解 __deref_out

我是Windows编程的新手,我似乎找不到任何资源来理解这个SAL注释的含义。我基本上是在尝试寻找示例,以便我确切地知道这对调用者和被调用者意味着什么。MSDN文章here没有帮助。如有任何帮助,我们将不胜感激。 最佳答案 “deref”意味着传入的指针存在一定程度的间接性。所以不是:DWORDFunction(BYTE*pBuffer);//pBufferisapointertoaBYTEbuffer你可能有:DWORDFunction(BYTE**ppBuffer);//pBufferisapointertoanotherpoi

windows - __deref_out_opt 和 __deref_opt_out 有什么区别?

下面的SAL有什么区别?注释?voidfoo(__deref_out_optPSTR*bar);voidfoo(__deref_opt_outPSTR*bar); 最佳答案 PSTR*out参数意味着调用者传入一个缓冲区,该缓冲区接收指向字符串的指针。在__deref_out_opt中,字符串是可选的(该函数将NULL放入调用者提供的缓冲区中)。在__deref_opt_out中,缓冲区是可选的(调用者传递NULL表示对输出值不感兴趣)。据推测,可以将这些概念结合起来,应该有一个__deref_opt_out_opt修饰符。