Пытаюсь в приложении на C# Unity3D вызвать функции из неуправляемой библиотеки. Добавил ее в Assets, со следующими настройками
В коде объявляю их с помощью PInvoke, вроде
[DllImport("avcodec-58.dll"), SuppressUnmanagedCodeSecurity]
public static extern int avcodec_close(AVCodecContext pAVCodecContext);
Но при обращении к ним выдается ошибка "DllNotFoundException: avcodec-58.dll". Подскажите, пожалуйста, как правильно подключить?
Сделал так:
[DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true, CallingConvention = CallingConvention.FastCall)]
[ResourceExposure(ResourceScope.Process)]
public static extern IntPtr LoadLibrary(string libFilename);
public NativeMethods()
{
IntPtr lib = LoadLibrary("Полный путь к avcodec-58.dll");
if (lib == IntPtr.Zero)
throw new Win32Exception(Marshal.GetLastWin32Error());
}
Но при вызове LoadLibrary все равно выдает ошибку "Не найден указанный модуль".
игрушка компилируется конкретно Юнити. Не вижуалкою и не MonoDevelop. Это значит что все что нужно для подключения внешней DLL — просто поместить в Assets папку. Дальше юнити синхронизирует эти изменения с проектом — добавит нужные референсы на библиотеку в проект.
Нужно иметь в виду, что сама DLL должна быть скомпилирована под .NET 3.5 или ниже т.к. юнити работает именно с 3.5.
Так же есть оф. документация по теме: https://docs.unity3d.com/Manual/Plugins.html
Делаю запрос к API в формате JSON, необходимо преобразовать его в модель C#
Есть окно "MainWindow", в нем Frame "Go" в который при запуске окна помещается "Page1", в "Page1" еще один Frame "Main", в котором лежит "Page2"
Интересная ситуация, при попытке установки значения для BitmapImageUriSource через привязку данных, вот так: