如何解决命名空间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
名称空间中有可用的类型,请使用该类型。过渡尚未完成,因此缺少某些类型。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。