HoloLens: развертывание приложения с использованием пользовательских dll через Unity

У меня есть проект Unity, в котором я должен заниматься обработкой изображений. Я решил использовать C ++ Opencv 3.4, поэтому я создал проект Visual Studio C ++, собрал dll Universal Windows Plateform (UWP) и обернул + связал его в моих сценариях C #. Он отлично работает в редакторе Unity со следующей архитектурой Плагин Unity Project
но мне не удается развернуть приложение ни на HoloLens, ни на эмуляторе.

Я собрал 64- и 32-битные версии opencv и моей библиотеки DLL. Я настроил Unity Editor для использования 64-битной версии и платформой WSA для использования 32-битной, как вы можете видеть на следующих скриншотах
Настройки плагина Unity x64 / Настройки плагина Unity x86.

Я собрал проект Unity со следующими настройками Unity build.

Когда я вхожу в Visual Studio и развертываю приложение в HoloLens, я получаю следующие ошибки на каждой пользовательской DLL, которую я добавил в проект

...
Loading opencv_highgui340.dll
Failed to load 'opencv_highgui340.dll', expected x86 architecture, but was Unknown architecture. You must recompile your plugin for x86 architecture.

(Filename: C:\buildslave\unity\build\Runtime/Misc/Plugins.cpp Line: 150)Loading DocDetector.dll
Failed to load 'DocDetector.dll', expected x86 architecture, but was Unknown architecture. You must recompile your plugin for x86 architecture.

В результате чего при развертывании и запуске приложения на HoloLens:

DllNotFoundException: Unable to load DLL 'DocDetector': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

Ниже вы найдете скрипт C #, который загружает и вызывает dll (на всякий случай):

// How I import the dll
internal static class OpenCVInterop
{
[DllImport("DocDetector")]
internal unsafe static extern double SimpleDocumentDetection(ref Color32 image, uint width, uint height, ref byte result);
}

// ...

// How I use it
unsafe
{
duration = OpenCVInterop.SimpleDocumentDetection(ref image[0], width, height, ref result[0]);
}

Заранее спасибо 😉

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]