gpt4 book ai didi

c# - COM 与 WinRT 的关系

转载 作者:太空宇宙 更新时间:2023-11-03 23:04:59 27 4
gpt4 key购买 nike

我没有清楚地了解 COM(组件对象模型)和 WinRT(Windows 运行时)之间的异同或关系本身。

在我的理解中,它们都提供了一个“运行时引擎”来使组件能够进行通信……那是 CLR(公共(public)语言运行时)吗?

WinRT 与 Windows 8 一起出现,为多种语言提供了一个通用平台。

我在这里没有得到的是,WinRT 是否取代了 COM?它们是一样的吗?

最佳答案

COM“只是”软件组件的二进制接口(interface)标准(来自 wikipedia )。没有运行时,没有基类/实用程序集(嗯,有一些,比如跨线程/进程编码、注册表、COM+,但没有它你也可以做 COM)。

COM 在 Windows 中绝对无处不在,用在客户端和服务器中,因为在其内心深处,它“只是”一个 vtable binding contract .

WinRT 是 COM 之上的完整 API(同样,没有引擎)。因此,它带有一组基类。它实际上非常面向 UI 应用程序(Windows 应用商店)。 WinRT 还附带了一组 services (元数据、类型系统、部署/存储等)。此处提供有用的 WinRT 介绍:WinRT demystified

CLR是为 .NET 程序提供动力的执行引擎。它可以在客户端和服务器上使用。例如,垃圾收集器就是在那里实现的。事实上,它在过去几年作为一个开源项目被移植到 Windows 以外的其他平台:CoreCLR Windows CLR 仅将 COM 用于其部分工作,主要用于与 Windows 平台通信。 WinRT 不使用 CLR。​​

关于c# - COM 与 WinRT 的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41625970/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com