【问题标题】:How to access Windows namespace from C++/WinRT component?如何从 C++/WinRT 组件访问 Windows 命名空间?
【发布时间】:2020-08-21 17:24:37
【问题描述】:

我通过 Visual Studio 2019 创建了一个空白 C++/WinRT 组件项目。

我将此行添加到Class.cpp

    using namespace Windows::UI::Xaml::Controls;

给我这个错误:

Error   C2653   'Windows': is not a class or namespace name

这类似于this question,除了该问题是针对 C++/CX 的。

有什么想法吗?

【问题讨论】:

  • 先试试using namespace winrt;
  • 哦,哇,我花了几个小时在这上面:P 谢谢!

标签: uwp c++-winrt


【解决方案1】:

整个 C++/WinRT 投影驻留在 winrt 命名空间中。换句话说,Windows 运行时“命名空间”Windows.UI.Xaml.Controls 被投影到 winrt::Windows::UI::Xaml::Controls

要访问该命名空间,请使用

using namespace winrt::Windows::UI::Xaml::Controls;

或者先将winrt命名空间合并到全局命名空间中:

using namespace winrt;
using namespace Windows::UI::Xaml::Controls;

一旦您继续将WinUI 合并到您的应用程序中,其中任何一个都会让您非常头疼。由于在winrt::Windows::UI::Xaml::Controlswinrt::Microsoft::UI::Xaml::Controls 命名空间下都出现了具有相同名称的类型,因此糟糕的编译器会迷失在歧义的海洋中。

【讨论】:

  • 感谢您的详细回复,做到了:)
猜你喜欢
  • 2013-05-17
  • 1970-01-01
  • 1970-01-01
  • 2010-11-22
  • 2012-08-06
  • 1970-01-01
  • 1970-01-01
  • 2015-01-14
  • 2018-09-16
相关资源
最近更新 更多