我对COM中的开发相对较新,我想知道访问COM对象属性的社区标准是什么。我在代码中看到了以下两种约定:
comObjectPtr->PutValue(value);
和
comObjectPtr->Value = value;
两者似乎都有效,但我想知道这两种方法和原因是否存在固有的优势或劣势。
答案 0 :(得分:3)
如果我没记错的话,如果出现问题,使用属性赋值会抛出异常而不是setter中返回的HRESULT。
getter方法调用与属性相同。
使用该属性的“好处”是您可以直接使用prop-get值,而不必在使用之前声明变量并获取它。
答案 1 :(得分:1)
你在谈论用#import创建的智能包装类,对吗?
PutValue()更清楚你正在做什么; “Value =”更容易使用,但如果put
函数执行除直接赋值之外的其他操作,则它可能具有“隐藏”副作用。据我了解,这两者是等价的,只是不同的语法。