Я попытался создать очень простую нативную библиотеку DLL, которая может быть вызвана простым приложением UWP c # с помощью PInvoke.Приложение UWP может работать на обычном компьютере с Windows 10 без каких-либо проблем, но когда я развернул приложение UWP на Hololens, оно всегда дает сбой с ошибкой «Dll Not Found».Я протестировал RS4 и RS5 в Hololens и получил тот же результат.
Шаги воспроизведения очень просты.
Создайте собственный C ++ DLL-проект (я использую VSВерсия сообщества 2017) и напишите некоторый код, например, возвращающий 1 + 2, например:
extern "C" {
__declspec(dllexport) int __stdcall add12() {
return 1 + 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);
}
}
Добавьте нативную DLL в проект, скомпилируйте и запустите приложение UWP на компьютере Win10 и Hololens, и вы заметите, что компьютер Win10 будет работать, а Hololens выйдет из строя.бежать.
Любая помощь высоко ценится.