c++ - 无法访问 CMake UPW 项目中的文件系统
问题描述
我构建了一个应用程序,它使用 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"
在 Windows 设置面板中为我Package.appxmanifest
的应用程序启用文件系统访问权限。
但是,我仍然收到上述错误,我还尝试访问我 PC 上的其他文件(因为我认为 system32 可能会受到更多限制),但没有成功。
我特别困惑,因为 Microsoft 的OpenXR 示例应用程序没有任何问题,而且他们没有声明该broadFileSystemAccess
功能。
有没有其他方法可以允许文件访问,或者我只是缺少一些我需要启用的东西?
解决方案
因此,作为快速跟进,如果有人遇到同样的问题:这里的问题是 OpenXR 加载程序中的一个错误,该错误是在 OpenXR 版本 1.0.10 中引入的。更新到 OpenXR 1.0.11 解决了加载程序无法访问MixedRealityRuntime.json
文件的问题。
推荐阅读
- python-3.x - 如何在 tensorflow 中使用 GTX 1660 超级 GPU?
- angular - 如何在 Angular 2 中发送与 onChange 事件对应的值?
- python - 找到第一个最小梯度python
- r - 如何正确记录 R6 自我
- android - 如何从 Genymotion 中提取 android img 文件?
- javascript - 当我尝试在javascript中仅清空“完全填充”的行时,为什么我的板的行会颠倒
- c# - 创建 PowerPoint 图表时额外打开 Excel 应用程序
- javascript - 我无法使用 material-ui 中的自动完成功能
- ansible - Ansible差异过滤器未从具有相同名称的host_vars读取2个参数
- javascript - Eclipse 2021-03:JavaScript 格式化程序设置不起作用