如果我使用 areinterpret_cast
转换 from IInspectable*
to Object^
,我是否仍负责发布原件IInspectable*
?
显然,producedObject^
会在超出范围时自行释放,所以真正的问题是 reinterpret_cast 是否暗示了一个 AddRef 给Object^
它自己的引用计数,或者它拥有我已经拥有的引用的所有权。
无论哪种方式,似乎都有争论:一方面,COM 操作不应该接管其输入指针的引用计数——另一方面,reinterpret_cast
顾名思义,它只是从“原始 ABI 指针”重新解释我的位到“已经拥有对对象的引用的戴帽子的指针”,我的工作是确保这是有意义的)。