Использование собственных библиотек C в Hololens (Unity3D)

#c# #visual-studio #unity3d #dll #hololens

Вопрос:

для другого проекта я пытаюсь получить собственную библиотеку C (libsvm.dll) работает на Microsoft Hololens в проекте Unity.

Чтобы попытаться понять, как должно работать использование собственных DLL, я в точности следовал этому руководству: https://learn.unity.com/tutorial/working-with-native-plugins-2019-3#

Когда я запускаю проект, он отлично работает на моем ПК с Windows, а также правильно строится для HL.

Но когда я пытаюсь запустить проект на Hololens, я получаю следующую ошибку:

Exception thrown at 0x776E9FC7 (ntdll.dll) in DLL Test.exe: 0xC0000139: Entry Point Not Found.

Кто-нибудь знает, как я могу это исправить? DLL импортируется в Unity для x86 и SDK UWP, поэтому я думаю, что сторона Unity в порядке. Помощь была бы очень признательна.

Ответ №1:

Пройдя через этот учебник по unity, я обнаружил, что шаблон проекта, который Dynamic-Link Library (.dll) вы выбрали в качестве основы, когда приступали к созданию библиотеки DLL C в Visual Studio. Если вы создали свою библиотеку DLL C в виде двоичного файла Win32, при запуске в HoloLens2 будут возникать исключения, поскольку Unity не будет включать стандартные двоичные файлы Win32 при создании проекта WSA. Поэтому рекомендуется воссоздать или перенести собственную библиотеку DLL win32 в библиотеку DLL UWP, см. Руководство здесь: Чтобы перенести собственную библиотеку DLL в UWP без создания нового проекта

Комментарии:

1. Привет, спасибо за ваш ответ! Как только я вернусь в офис, я опробую его, а затем дам вам знать, сработало ли это