有关retval的使用.该怎么处理

有关retval的使用....
有关retval的使用.....

1.当使用retval , 只能通过try...catch ... 来捕获错误

例如: HRESULT Item(VARIANT v, [out, retval] Account **pItem); 

2.当不使用retval , 只能通过HRESULT返回值,来获得错误信息.

例如: HRESULT Item(VARIANT v, [out] Account **pItem); 

大家谈谈--使用哪种方法比较好?



------解决方案--------------------
你这种理解时错误的,retval在你这个例子中也可以判断HRESULT判断

如果你一定要通过返回值判断,retval应该返回一个错误码,这样就不用异常来判断了

------解决方案--------------------
探讨
如果要让组件能够被VB/Java/C#等语言级调用,则必须使用retval来返回结果.

---是不是这样?

------解决方案--------------------
c++可以获得HRESULT返回值,所以无需try-catch。