Hello,
I would like to use the Pulse Physiology Engine as part of a HoloLens project I am developing using Unity. I saw on the documentation that using IL2CPP is not currently supported, however, IL2CPP is the only scripting backend available for the UWP platform. I have tried using the steps here (https://gitlab.kitware.com/physiology/PulseUnityAsset#il2cpp-build-support) and was able to successfully build the project in Unity and get the generated Visual Studio solution. However, when I try to deploy the Visual Studio solution to the HoloLens, I get an error that it is missing PulseC.dll. Looking into this further, I see that the native DLL has only been copied into the x64 plugins folder, but the HoloLens requires x86.
I tried copying over the DLL from the x64 folder to the x86 folder and the app deployed successfully, however it does not work as expected, as the line graphs don’t show and the numerical text don’t change from their default values. I also tried building the DLL from scratch using the steps at this link (https://gitlab.kitware.com/physiology/engine#building) and building with Visual Studio, but I get the following errors:
Error MSB6006 “cmd.exe” exited with code 1. [C:\physiology\builds\Pulse\PulseJava.vcxproj] Pulse C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets 220
Error Could not find or load main class com.kitware.physiology.pulse.dataset.DataSetReader PulseData C:\physiology\builds\EXEC 1
Error Could not find or load main class com.kitware.physiology.testing.SETestDriver PulseData C:\physiology\builds\EXEC 1
Error MSB3073 The command “setlocal
cd C:\physiology\builds\install\bin
if %errorlevel% neq 0 goto :cmEnd
C:
if %errorlevel% neq 0 goto :cmEnd
“C:\Program Files\CMake\bin\cmake.exe” -DTYPE:STRING=genData -P run.cmake
if %errorlevel% neq 0 goto :cmEnd
:cmEnd
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
:cmErrorLevel
exit /b %1
:cmDone
if %errorlevel% neq 0 goto :VCEnd
setlocal
cd C:\physiology\builds\install\bin
if %errorlevel% neq 0 goto :cmEnd
C:
if %errorlevel% neq 0 goto :cmEnd
“C:\Program Files\CMake\bin\cmake.exe” -DTYPE:STRING=genStates -P run.cmake
if %errorlevel% neq 0 goto :cmEnd
:cmEnd
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
:cmErrorLevel
exit /b %1
:cmDone
if %errorlevel% neq 0 goto :VCEnd
setlocal
cd C:\physiology\builds\install\bin
if %errorlevel% neq 0 goto :cmEnd
C:
if %errorlevel% neq 0 goto :cmEnd
“C:\Program Files\CMake\bin\cmake.exe” -DTYPE:STRING=updateBaselines -P run.cmake
if %errorlevel% neq 0 goto :cmEnd
:cmEnd
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
:cmErrorLevel
exit /b %1
:cmDone
if %errorlevel% neq 0 goto :VCEnd
:VCEnd” exited with code -1. PulseData C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets 138
I have tried building the DLL in both its default, unchanged configuration (x64) and also by changing the active solution platform to x86 and the platform for each project in the solution to Win32 using the configuration manager, but I get the same errors for both.
Despite these errors, I was able to find the DLL in C:\physiology\builds\install\bin, but am unsure that it finished building successfully due to the errors. Copying the newly built DLL over to the HoloLens VS project in the x86 plugins folder did not solve the problem and resulted in the same behavior as before.
Is it possible to get a DLL that is compatible with x86 systems? How about for ARM64 (since the HoloLens 2 will use that)?