命名空间Microsoft vs命名空间Windows

问题描述

我正在尝试Visual Studio中可用的C ++ / WinRT和WinUI模板。我对命名空间::winrt::Microsoft::winrt::Windows感到困惑。我只知道前一种,因为自动生成的回调函数使用了::winrt::Microsoft中的类型,并且由于我错误地从::winrt::Windows命名空间中传递了相同名称的类型而无法编译。我找不到有关::winrt::Microsoft的更多信息,甚至找不到官方文档。

据我所知,::winrt::Microsoft::winrt::Windows的命名类型大致相同,但是::winrt::Microsoft中缺少某些类型。例如,::winrt::Windows::UI::Colors::winrt::Microsoft::UI::Colors都存在,但是::winrt::Windows::UI::Color在Microsoft名称空间中没有“替代”。

问题:

  • 为什么我们有2个几乎相同但略有不同的名称空间?
  • 在哪种情况下我应该选择一个
  • 为什么::winrt::Microsoft缺少某些类型?

解决方法

Windows是原始名称空间,所有与UI相关的类型都驻留在其中。其中的一些类型是将WinUI从仅受UWP困扰的状态中“重塑”到Microsoft命名空间中的。

如果(新的)Microsoft名称空间中有可用的类型,请使用该类型。过渡尚未完成,因此缺少某些类型。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...