【问题标题】:How to integrate SimpleITK in Unity for app in HoloLens 2如何在 HoloLens 2 中将 SimpleITK 集成到 Unity for app 中
【发布时间】:2022-01-03 16:41:46
【问题描述】:

我正在 Unity 2020.3.3f1 中开发一个应用程序,以部署在 HoloLens 2 中。这个应用程序必须处理医学图像,因此我需要使用 SimpleITK 库。 我已经下载了 SimpleITK 源文件并在 Visual Studio 2017 中为 ARM64 架构编译它们,以匹配 HoloLens 2 ARM64 架构,遵循以下过程:https://blogs.windows.com/windowsdeveloper/2018/11/15/official-support-for-windows-10-on-arm-development/。 我在 Unity 项目的 Asset 文件夹中添加了本机和托管 .dll,并编写了一个使用 SimpleITK 的 c# 脚本。

在 Unity 编辑器中一切正常,没有错误,但是当我在 HoloLens 2 中部署应用程序时,没有任何效果。 在 Visual Studio 中启动解决方案的调试(调试 -> 开始调试),只要调用使用 SimpleITK 的脚本,这些行就会出现在输出窗口中:

'SpatialAwareness.exe' (Win32): Loaded 'U:\USERS\DefaultAccount\AppData\Local\DevelopmentFiles\BaseVS.Release_ARM64.Elena\SimpleITKCSharpNative.dll'. Module was built without symbols.
'SpatialAwareness.exe' (Win32): Unloaded 'U:\USERS\DefaultAccount\AppData\Local\DevelopmentFiles\BaseVS.Release_ARM64.Elena\SimpleITKCSharpNative.dll'
Exception thrown at 0x00007FFC1AAF39EC in SpatialAwareness.exe: Microsoft C++ exception: Il2CppExceptionWrapper at memory location 0x00000094365FE590.

如何解决错误?

【问题讨论】:

    标签: c# unity3d cross-compiling hololens simpleitk


    【解决方案1】:

    您构建的 SimpleITK DLL 似乎缺少 Windows 运行时组件。

    如果您将 C++ DLL 创建为 Win32 二进制文件,则在 HoloLens2 上运行时会引发异常,因为 Unity 在构建 WSA 项目时不会包含标准 Win32 二进制文件。因此,您需要将 Win32 DLL 重新创建为 UWP DLL 或将本机 win32 DLL 移植到 UWP DLL,请参阅此处的指导:To port a native DLL to the UWP without creating a new project

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-06
      • 1970-01-01
      • 1970-01-01
      • 2017-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多