您知道为什么在这种情况下使用**吗?
HRESULT CreateSolidColorBrush(
const D2D1_COLOR_F & color,
ID2D1SolidColorBrush** solidColorBrush
);
以上内容来自Microsoft文档 https://docs.microsoft.com/en-us/windows/win32/api/d2d1/nf-d2d1-id2d1rendertarget-createsolidcolorbrush(constd2d1_color_f__id2d1solidcolorbrush)
在这种情况下使用指向指针的指针有什么好处?
(为什么他们不开发刚刚返回ID2D1SolidColorBrush *的函数)
答案 0 :(得分:2)
1。在这种情况下,使用指向指针的指针有什么好处?
由于该函数可能旨在修改指针,因此您可以传递其地址。
此方法返回时,包含指向新指针的地址 刷。该参数未初始化传递。
它可能已被声明为对指针的引用,但对用户而言,更清楚的是,他必须提供要修改的指针的地址,因为它将强制他进行语义化。
2。他们为什么不开发刚刚返回ID2D1SolidColorBrush*
的函数?
因为该函数已经返回了某种状态。
如果此方法成功,它将返回
S_OK
。否则,它将返回一个HRESULT
错误代码。
将状态和计算值分开是一种好习惯。