Hololens не может вывести родную dll с ошибкой «Dll Not Found» - PullRequest
0 голосов
/ 19 октября 2018

Я попытался создать очень простую нативную библиотеку DLL, которая может быть вызвана простым приложением UWP c # с помощью PInvoke.Приложение UWP может работать на обычном компьютере с Windows 10 без каких-либо проблем, но когда я развернул приложение UWP на Hololens, оно всегда дает сбой с ошибкой «Dll Not Found».Я протестировал RS4 и RS5 в Hololens и получил тот же результат.

Шаги воспроизведения очень просты.

  1. Создайте собственный C ++ DLL-проект (я использую VSВерсия сообщества 2017) и напишите некоторый код, например, возвращающий 1 + 2, например:

    extern "C" {
    
        __declspec(dllexport) int __stdcall add12() {
    
        return 1 + 2;
        }
    }
    
  2. Создайте пустой проект UWP для вызова функции DLL с помощью PInvoke:

    public class WrapperClass
    {
    
        [DllImport("CPPDLL", CallingConvention = CallingConvention.StdCall)]
        public static extern int add12();
    
    }
    
    
    public sealed partial class MainPage : Page
    {
    
        public MainPage()
        {
    
            this.InitializeComponent();
    
            int result = WrapperClass.add12();
    
            Debug.WriteLine("add 12 = " + result);
    
        }
    }
    
  3. Добавьте нативную DLL в проект, скомпилируйте и запустите приложение UWP на компьютере Win10 и Hololens, и вы заметите, что компьютер Win10 будет работать, а Hololens выйдет из строя.бежать.

Любая помощь высоко ценится.

...