gpt4 book ai didi

c++ - WinRT XAML - 托管和非托管 - 它是如何工作的?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:38:47 25 4
gpt4 key购买 nike

关于新的 WinRT API 和以它为目标的语言(直接或间接)以及它们与 XAML 的关系,我不明白。

  1. .NET 语言(C#、VB.Net、F#)可用于构建 XAML Metro在“受 API 限制”的 CLR 上运行的应用程序又在 WinRT 上运行
  2. C++ 可用于构建直接在WinRT API 的顶部

我的问题是 - 方案 1 中的 XAML 是否先转换为 BAML,然后转换为 MSIL(按照传统 .NET 应用程序),或者是否有新的机制?如果不是,那么构建非托管应用程序的编译器如何将相同的 XAML 转换为 native 指令?这两种情况是否使用相同的编译策略得到解决?如果是,那又如何?

最佳答案

在场景 1 中,当编写 Metro 应用程序时,您不再使用 .Net XAML 实现、System.Windows.Controls 命名空间,而是使用来自 Windows.UI.Xaml.Controls 的 XAML 控件。

新命名空间中的 XAML 实现现在是 WinRT 的一部分,因此它是非托管的。当您在 metro .Net 应用程序中使用这些控件时,您实际上是在为这些 WinRT 控件使用 Runtime Callable Wrappers。

当您在非托管 C++ Metro 应用程序中使用 XAML 时,您使用的是非托管 WinRT 控件,所以是的,它们被编译为 native 代码,但没有从 .Net 到 native 代码的转换。

关于c++ - WinRT XAML - 托管和非托管 - 它是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9066161/

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