命名空间 Microsoft 与命名空间 Windows
namespace Microsoft vs namespace Windows
我正在尝试 C++/WinRT 和 VisualStudio 中可用的 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-related 类型都存在于其中。其中一些类型 'reinvented' 进入 Microsoft
命名空间,作为将 WinUI 摆脱其 UWP-only 痛苦的一部分。
如果(较新的)Microsoft
命名空间中有可用类型,则使用该类型。转换尚未完成,因此缺少某些类型。
我正在尝试 C++/WinRT 和 VisualStudio 中可用的 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-related 类型都存在于其中。其中一些类型 'reinvented' 进入 Microsoft
命名空间,作为将 WinUI 摆脱其 UWP-only 痛苦的一部分。
如果(较新的)Microsoft
命名空间中有可用类型,则使用该类型。转换尚未完成,因此缺少某些类型。