在C++中使用COM属性或COM设置和GETTETS是最佳实践吗?

在C++中使用COM属性或COM设置和GETTETS是最佳实践吗?,c++,com,activex,C++,Com,Activex,我对COM中的开发比较陌生,我想知道访问COM对象属性的社区标准是什么。我在代码中看到了以下两种约定: comObjectPtr->PutValue(value); 及 这两种方法似乎都有效,但我想知道这两种方法是否有固有的优势或劣势,以及原因。您所说的是使用导入创建的智能包装器类,对吗 PutValue对于您正在做的事情更加明确;Value=更易于使用,但如果put函数执行非直接赋值的操作,它可能会产生隐藏的副作用。据我所知,这两者是等价的,只是语法不同。你说的是用import创建的智

我对COM中的开发比较陌生,我想知道访问COM对象属性的社区标准是什么。我在代码中看到了以下两种约定:

comObjectPtr->PutValue(value);


这两种方法似乎都有效,但我想知道这两种方法是否有固有的优势或劣势,以及原因。

您所说的是使用导入创建的智能包装器类,对吗


PutValue对于您正在做的事情更加明确;Value=更易于使用,但如果put函数执行非直接赋值的操作,它可能会产生隐藏的副作用。据我所知,这两者是等价的,只是语法不同。

你说的是用import创建的智能包装器类,对吗


PutValue对于您正在做的事情更加明确;Value=更易于使用,但如果put函数执行非直接赋值的操作,它可能会产生隐藏的副作用。据我所知,这两者是等价的,只是语法不同。

如果我没记错的话,如果有问题,使用属性赋值将抛出异常,而不是setter中返回的HRESULT

getter方法调用与属性的情况也是如此


使用该属性的一个好处是,您可以直接使用prop get值,而不必在使用前声明变量并获取它。

如果我没记错的话,如果出现问题,使用属性赋值将引发异常,而不是setter中返回的HRESULT

getter方法调用与属性的情况也是如此


使用该属性的一个好处是,您可以直接使用prop get values,而不必在使用前声明变量并获取它。

这就是我要说的。尽管我非常感谢接受这个答案,@crashmstr的答案指出了一个更重要的微妙之处,也就是异常vs.HRESULT返回值。这就是我所说的。尽管我非常感激这个答案被接受,@crashmstr的答案指出了一个更重要的微妙之处,即异常vs.HRESULT返回值。
comObjectPtr->Value = value;