【问题标题】:What should I install to use namespace Windows::Devices in c++?我应该安装什么才能在 C++ 中使用命名空间 Windows::Devices?
【发布时间】:2022-01-04 16:12:46
【问题描述】:

现在我要使用蓝牙连接到设备,所以我有一些源代码。 它使用命名空间 Windows::Devices,但我的 Visual Studio 给了我编译错误。

using namespace Windows::Devices;

我想我必须另外安装一些软件包,但我不确定我必须安装什么。 如果有人知道,请帮助我。

【问题讨论】:

  • 这似乎是 C++/CLI 和 C# 的 UWP 示例。你用哪一个。
  • 我将在 C++/MFC 中使用它。我已经安装了 c++ UWP 工具。
  • 不能在 C++ 中直接使用 UWP。
  • C++/CLI 和 C++ 是不同的语言(但 MFC 只是一个框架)。 @SM也许他可以使用 C++/WinRT(这是一个标准的 C++17 库,而不是微软对该语言的扩展)?
  • 我像使用命名空间 ABI::Windows::Devices 一样附加了前缀命名空间 ABI,所以它不会给我编译错误。

标签: c++ windows namespaces device


【解决方案1】:

由于问题被标记为,我将假设这是您正在使用的编程语言。从 C++ 使用 Windows 运行时类型的最方便的方法是通过 C++/WinRT。它由一个基础库和一个代码生成器组成。代码生成器负责提供“投影类型”(参见Consume APIs with C++/WinRT),生成到命名空间中,例如Windows::Devices

项目通常会动态生成包含投影类型的标头,然后可以像任何其他标头一样包含这些标头。使用C++/WinRT VSIX 扩展创建的项目就是这样做的。这些项目引用了包含代码生成器的Microsoft.Windows.CppWinRT NuGet 包,以及在构建期间驱动它的项目属性。

以前,包含预计 C++/WinRT 类型的头文件是通过 Windows SDK 交付的。它们仍然是 SDK 的一部分,可以由客户端代码使用,尽管最好使用 NuGet 包。您将在 %WindowsSdkDir%Include\cppwinrt\winrt 下找到 Windows.Devices.h 头文件,因此要使用此命名空间,这就是您的文件需要包括在内。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-08
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2011-04-13
    相关资源
    最近更新 更多