gpt4 book ai didi

c++ - VS 2017 & 2019 找不到 WinRT 头文件,即使是在新的解决方案上

转载 作者:行者123 更新时间:2023-12-05 07:00:23 25 4
gpt4 key购买 nike

因此,我正在尝试使用“Windows 应用程序打包项目”将 Win32 应用程序更新为 UWP,我遇到了文件系统问题,这是我预料到的,并且正在尝试解决这些问题。为此,我需要访问 WinRT 库,以便我可以处理 UWP 路径以获取我的 Assets 和资源。

我安装了 C++/WinRT VSIX 扩展并将 NuGet 包添加到我的解决方案中。我假设 from what i read这就是我访问头文件所需要做的一切。 但是编译器显然找不到 WinRT 的头文件及其命名空间,因为我收到消息说 cannot open source file "winrt/Windows.Storage.h 而我不能'不要使用 Windows::Storage::StorageFolder 调用我显然需要让我的文件系统代码工作。尽管我尽最大努力找出我缺少的包含路径,但没有任何效果,所以我尝试了一种不同的策略。

在同一个解决方案中,我创建了一个“DirectX 12 应用程序(通用 Windows)”,认为我可能走错了路,并选择看看我是否可以将我的前端重新实现为一个直接的 UWP 应用程序,而无需遗留 win32。这个新项目似乎有正确的包含,因为 using 指令适用于它使用的 Windows.* 命名空间,并且可以编译。尽管如此,我无法弄清楚它在做什么来获取与我需要的类似的访问命名空间,所以我无法对其进行逆向工程以使我的原始项目正常运行。但是,我怀疑这是否使用了相同的库,因为在我安装 C++/WinRT VSIX 扩展之前就可以使用此项目类型,并且在任何地方都没有提到 WinRT。

为了回归基础,我使用“Windows 桌面应用程序 (C++/WinRT)”创建了一个新的解决方案,因为我知道它使用了我所追求的运行时,而且它应该是干净的(与我的相反)具有大量项目和配置的长期使用的解决方案),因此我可以看到它用于复制和访问我需要的工具的选项。但是,新创建的项目将无法编译,它引用的原因与我原来的解决方案和项目关于无法找到 WinRT header 的原因完全相同。这让我感到困惑,所以我认为这是我在全局范围内对 VS2017 进行的一些其他配置。

为了隔离这一点,我安装了 VS2019 并向其添加了扩展,考虑“新环境,没有配置问题”。但是,新创建的“Windows 桌面应用程序 (C++/WinRT)”项目再次无法构建,并且找不到头文件。

自动生成的 pch.h 包含以下内容

//it can't find anything starting with "winrt/"
#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.Foundation.Collections.h>
#include <winrt/Windows.System.h>
#include <winrt/Windows.UI.Xaml.h>
#include <winrt/Windows.UI.Xaml.Controls.h>
#include <winrt/Windows.UI.Xaml.Hosting.h>
#include <winrt/Windows.UI.Xaml.Media.h>
//but it finds this one totally fine
#include <Windows.UI.Xaml.Hosting.DesktopWindowXamlSource.h>

所以这在新旧解决方案文件以及 VS2017 和 VS2019 中都会发生。我正式对正在发生的事情感到困惑。

任何人都可以阐明我所缺少的东西,这样我就可以获得我的 win32 应用程序或新创建的 WinRT 项目来构建吗?

最佳答案

这已由 https://github.com/microsoft/cppwinrt/pull/781 修复更新您的 MSIX 和 NuGet 包

关于c++ - VS 2017 & 2019 找不到 WinRT 头文件,即使是在新的解决方案上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64142007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com