|
|
1
3
这两种变体都违反了COM的基本原则 否则会导致各种各样的错误。简单地说是因为它阻止人们对物体进行完全合法的操作。就像把它们放进智能指针。智能指针将调用AddRef,将计数设为1,然后释放,将计数设为0并导致对象自毁。 是的,我知道QueryInterface 90%的实现都不这样做。但我也向你保证,有一些人是这样做的:) 我认为最简单的方法是在创建对象之后立即调用AddRef。这允许对象在尽可能早的时候表现得像一个普通的COM对象。
|
|
|
3
0
我总是使用下面的代码场景来创建返回的com对象,以避免内存问题。当然,这是有效的,因为我的对象在创建时引用计数为0。对我来说,这似乎总是比使用delete操作符处理错误条件更清楚。
|