Hey Anand
So I was thinking that to test this out, that I can just build the vitals monitor scene and push it to the hololens. Does that make sense? Are there any specific player settings that you can recommend?
Hey Anand
So I was thinking that to test this out, that I can just build the vitals monitor scene and push it to the hololens. Does that make sense? Are there any specific player settings that you can recommend?
Alright,
I built the VitalsMonitor scene to my HoloLens2
So the way I am doing this is pretty much by the book, and I drop in my PulseUnityAsset, and follow the instructions.
I targeted Release with ARM64, and deployed to my HoloLens2 and the monitor successfully by loaded a patient and the vitals animated properly and looked good.
I try to target Release and ARM, and I get an app on my HoloLens2, but when I crank it up it gives me a developerish window saying it can’t load PulseC.dll
It looks like we need to have a few msvc redistributable dlls along with the PulseC.dll for ARM, but looking through MSVC, there is no redistributable ARM dlls, there are x86, x64, and arm64 redistributables… but nothing for ARM…
You can see here, that there is no ARM redistributable…
I see all the documentation talking about ARM deployment, but I see nothing about building ARM C++…
I also see that visual studio seems to only support C++ Universal Windows Platform tools for ARM64
I am at a loss as to what a Windows ARM dll is and how to properly build and deploy one into the wild…
yeah it is the same scenario I’ve experienced before, first i really wants to thank you for giving a try to this.
is it any dependency dll we required for PulseC.dll for ARM? but i think you’re talking about msvc dll while building the PulseC.dll . cause unity also shows message if dll is missing any dependency dll.
Thanks though, i’ll try if i found anything related to ARM msvc supported dll, else i’ll take ARM64 is the only solution for me
Best,
Anand
You know what,
Let me try building an x86 version and see if that works. That’s supposed to work (in some kind of emulator on the device)
Ohh great,
i’m not sure but may be i’ve tried that last time. is it possible to build a platform independent dll for unity like .net dll or the others dll we have in unity package.
It is not possible to build a platform independent PulseC library as it is in C++ and must be compiled for specific platform. Such is the nature of the beast.
Well,
The MSVC project generated by Unity has Win32 and x64 configurations, but they don’t build anything for consumption by the HoloLens (*.appx bundle), So that just does not work…
Looks like that is backed up by microsoft as well
So after some digging into the HoloLens, I found my VitalsMonitor app logs, and right off the bat, I see:
Logging to C:/Data/Users/abray/AppData/Local/Packages/Template3D_gsb4bx2phmp54/TempState/UnityPlayer.log
Loading native plugins
Loading vcruntime140.dll
Failed to load 'C:/Data/Users/DefaultAccount/AppData/Local/DevelopmentFiles/Template3DVS.Release_ARM.aaron.bray/vcruntime140.dll', expected ARM architecture, but was ARM64 architecture. You must recompile your plugin for ARM architecture.
(Filename: C:\buildslave\unity\build\Runtime/Misc/Plugins.cpp Line: 193)
Loading msvcp140.dll
Failed to load 'C:/Data/Users/DefaultAccount/AppData/Local/DevelopmentFiles/Template3DVS.Release_ARM.aaron.bray/msvcp140.dll', expected ARM architecture, but was ARM64 architecture. You must recompile your plugin for ARM architecture.
(Filename: C:\buildslave\unity\build\Runtime/Misc/Plugins.cpp Line: 193)
Loading PulseC.dll
Plugins: Failed to load 'PulseC' with error 'Operation has failed with error 0xc1: %1 is not a valid Win32 application.
'.
(Filename: C:\buildslave\unity\build\Runtime/Misc/Plugins.cpp Line: 269)
So, yeah, it looks like I need ARM redistributables of the MSVC runtime objects…
And they don’t seem to have any…
I did try to use those files provided in the arm folder under onecore
folder
And I did NOT get the DLL not found issue
But the App Crashed…
This seems like a Microsoft thing, they just don’t seem to support ARM distribution…
It looks like the last arm redistibutables were provided in MSVC 2013
And in getting the installer, it does not run on my machine
MSVC 2013 also does not support C++11, so that won’t build Pulse anyway…
It just does not seem like Microsoft supports ARM anymore…
(But I can’t find any place where they say it, just seems so in practice)
ARM must be considered as Legacy support, and anything new needs to be ARM64
What is the reason you need ARM?
Do you have some old Legacy ARM library?