【发布时间】:2011-11-20 18:20:24
【问题描述】:
我听说新的 WinRT 是一个非托管框架,它基于 COM,但不知何故,他们想出了一些方法来简化 WinRT 和托管代码之间的映射。我想知道这个机制是如何工作的?
【问题讨论】:
-
您可能想在此处查看此问题的答案:stackoverflow.com/questions/7416826/…
我听说新的 WinRT 是一个非托管框架,它基于 COM,但不知何故,他们想出了一些方法来简化 WinRT 和托管代码之间的映射。我想知道这个机制是如何工作的?
【问题讨论】:
Windows 运行时表示元数据中的所有 API,各种语言投影(C++、JavaScript 和 C#)都可以读取这些 API。
因为 API 形状是在元数据中描述的,所以语言运行时和编译器可以推断 API 并知道如何为这些 API 生成代码。
对于 CLR,这项工作稍微容易一些,因为元数据格式是 ECMA 335,这是 CLR 使用的 CLI 元数据格式 - 因此 CLR 的翻译稍微容易一些。
但总的来说,翻译很简单,因为您拥有机器上所有 API 的机器可读表示。
【讨论】: