windows 随着unique_ptr和shared_ptr的出现,COM的IUnknown是否无用?

tzxcd3kk  于 2023-11-21  发布在  Windows
关注(0)|答案(1)|浏览(130)

在C11或更高版本中使用COM的IUnknown接口有什么理由吗?
AFAIK COM是作为一种更好的C
98创建的,C11是否使COM过时?
在C
11之后,大多数COM代码都是遗留的,我说的对吗?

cyej8jka

cyej8jka1#

它们是完全正交的,它们只是解决完全不同的问题。
COM的IUnknown提供了一个基接口,从该接口可以发现对象实现的其他接口。
C++标准库的std::unique_ptr和std::shared_ptr解决了管理对象生存期的问题,但没有提供任何机制来发现对象提供的功能。COM支持跨语言对象互操作,这是一种接口在一种语言中发布并从另一种语言使用的方法。
请注意,有比std::unique_ptr和std::shared_ptr更好的COM对象 Package 器,例如ATL的CComPtr,MSVC的built-in _com_ptr_t,还有一个来自UWP的 Package 器,我忘记了它的名字。

相关问题