库包括 WinRT 块

Library includes WinRT brocken

我正在尝试编译这个项目:https://github.com/bucienator/ble-win-cpp

克隆存储库后,出现错误“wait_for”不是“winrt :: impl”的成员。使用 NuGet,我将 Microsoft.Windows.CppWinRT 包添加到项目中。但在那之后,我对所有库的导入都失败了:

#include <winrt / Windows.Foundation.h>
#include <winrt / Windows.Devices.Bluetooth.h>
#include <winrt / Windows.Devices.Enumeration.h>
#include <winrt / Windows.Devices.Bluetooth.Advertisement.h>
#include <winrt / Windows.Devices.Bluetooth.GenericAttributeProfile.h>
#include <winrt / Windows.Storage.Streams.h>

告诉我如何获得 Visual Studio 来编译我的项目?

不确定它过去是如何编译的,但它已经有 3 年历史了,所以它可能是用较旧的 C++/WinRT 编译的。

这里提到了“wait_for”问题:https://github.com/microsoft/Windows.UI.Composition-Win32-Samples/issues/47 and my solution is to add the Microsoft.Windows.CppWinRT 包。

然后你会有其他问题,你必须像这样修复pch.h:

...
#include <iostream>
#include <sstream>
#include <iomanip>
#include <mutex> // add this
#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.Foundation.Collections.h> // add this
#include <winrt/Windows.Devices.Bluetooth.h>
#include <winrt/Windows.Devices.Enumeration.h>
#include <winrt/Windows.Devices.Bluetooth.Advertisement.h>
#include <winrt/Windows.Devices.Bluetooth.GenericAttributeProfile.h>
#include <winrt/Windows.Storage.Streams.h>
...