随着unique_ptr和shared_ptr的出现,COM的IUnknown就没用了吗?

问题描述 投票:0回答:1

有什么理由在 C++11 或更高版本中使用 COM 的 IUnknown 接口吗?

据我所知 COM 是作为一种更好的 C++98 创建的,C++11 是否会使 COM 过时?

C++11 之后大多数 COM 代码都是遗留代码,我说得对吗?

c++ windows c++11 winapi com
1个回答
0
投票

它们是完全正交的,它们只是解决完全不同的问题。

COM 的 IUnknown 提供了一个基本接口,从中可以发现对象实现的其他接口。

C++ 标准库的 std::unique_ptr 和 std::shared_ptr 解决了管理对象生命周期的问题,但没有提供任何机制来发现对象提供的功能。 COM 支持跨语言对象互操作,这是一种以一种语言发布接口并从另一种语言使用接口的方法。

请注意,有比 std::unique_ptr 和 std::shared_ptr 更好的 COM 对象包装器,例如 ATL 的 CComPtr、MSVC 的内置 _com_ptr_t 以及来自 UWP 的一个(我忘记了名称)。

© www.soinside.com 2019 - 2024. All rights reserved.