不知道为什么在这种情况下使用**

时间:2020-04-05 14:48:41

标签: c++ direct2d

您知道为什么在这种情况下使用**吗?

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 *的函数)

1 个答案:

答案 0 :(得分:2)

1。在这种情况下,使用指向指针的指针有什么好处?

由于该函数可能旨在修改指针,因此您可以传递其地址。

此方法返回时,包含指向新指针的地址 刷。该参数未初始化传递。

它可能已被声明为对指针的引用,但对用户而言,更清楚的是,他必须提供要修改的指针的地址,因为它将强制他进行语义化。

2。他们为什么不开发刚刚返回ID2D1SolidColorBrush*的函数?

因为该函数已经返回了某种状态。

如果此方法成功,它将返回S_OK。否则,它将返回一个 HRESULT错误代码。

将状态和计算值分开是一种好习惯。