【问题标题】:Cannot access filesystem in CMake UPW Project无法访问 CMake UPW 项目中的文件系统
【发布时间】:2021-02-06 14:59:12
【问题描述】:

我构建了一个应用程序,它使用 OpenXR 和 DirectX 在 VR 中显示一个简单的场景。由于我的任务是在现有项目中实现此功能,因此它是使用 CMake 构建的,与 Visual Studio 2019 完美配合。

该应用程序可以在 Windows MR Portal 以及带有 Oculus OpenXR 运行时的 Oculus Rift S 上毫无问题地运行。

现在下一步是让它在全息透镜上运行。由于我需要一个 UWP 项目来执行此操作,因此我为要使用 CMake 在 hololens 上运行的应用程序创建了一个 .sln,如下所示:

cmake -G "Visual Studio 16 2019" -A x64 ..\.. -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0

有了这个,我可以打开项目并将其编译为 UWP,没有任何问题。现在,当我想运行应用程序进行调试时,我收到以下错误:

Exception thrown at 0x00007FFD3CC83E49 in openxr_test_app.exe: Microsoft C++ exception: std::filesystem::filesystem_error at memory location 0x00000046791CCF50.
Error [GENERAL |  | OpenXR-Loader] : Unknown failure: canonical: Access denied: "C:\WINDOWS\system32\MixedRealityRuntime.json"

经过一番谷歌搜索,我发现我可能需要在Package.appxmanifest中添加相关功能,所以我添加了

<rescap:Capability Name="broadFileSystemAccess"/>

还有

xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"

IgnorableNamespaces="uap mp rescap"

到我的Package.appxmanifest 并在 Windows 设置面板中为我的应用程序启用文件系统访问。

但是,我仍然收到上述错误,我还尝试访问我电脑上的其他文件(因为我认为 system32 可能会受到更多限制),但没有成功。

我特别困惑,因为来自 Microsoft 的 OpenXR sample app 没有任何问题,而且他们没有声明 broadFileSystemAccess 功能。

是否有任何其他方法可以允许文件访问,或者我只是缺少一些我需要启用的东西?

【问题讨论】:

    标签: c++ cmake uwp openxr


    【解决方案1】:

    因此,作为快速跟进,如果有人遇到同样的问题:这里的问题是 OpenXR 加载程序中的一个错误,该错误是在 OpenXR 版本 1.0.10 中引入的。 更新到 OpenXR 1.0.11 解决了加载器无法访问MixedRealityRuntime.json 文件的问题。

    【讨论】:

      猜你喜欢
      • 2021-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多