есть проблема с возвращаемым результатом из Dlfcn.dlopen (...).
Включен библиотечный файл *. Framework в проекте Xamarin.iOS пометил его как встроенную библиотеку. Кроме того, файл библиотеки включен в *. App / *. Framework - он расположен там физически и на устройстве iOS.
В кодеЯ проверяю, что файл библиотеки находится на пути, и я получаю значение размера файла библиотеки. Библиотека Файл существует и имеет полный размер в байтах . Но установите путь к библиотеке в dlopen, Я не получаю возвращаемый результат, и при этом я не получаю никаких ошибок .
//Code Example Issue ObjCRuntime.Dlfcn.dlopen
var derictories = System.IO.Directory.EnumerateDirectories("./");
foreach (var item in derictories)
{
Console.WriteLine(item);
}
//Dynamic Library Name
var ln = @"av337.framework/av337";
var documentsPath = NSBundle.MainBundle.ResourcePath;
var filePath = System.IO.Path.Combine(documentsPath, ln);
bool isExist = System.IO.File.Exists(filePath);
Console.WriteLine("Framework Exist: "+isExist);
var data = System.IO.File.ReadAllBytes(filePath);
if(data.Length>0)
Console.WriteLine("Framework size: "+data.Length);
IntPtr result = ObjCRuntime.Dlfcn.dlopen(filePath, 0);
Console.WriteLine("dlopen Error: "+ObjCRuntime.Dlfcn.dlerror());
if (result != IntPtr.Zero)
ObjCRuntime.Dlfcn.dlclose(result);
else
throw new Exception("ObjCRuntime.Dlfcn.dlopen not load");
Что я делаю не так и как мне использовать dlopen для * .framework * .so и других динамических библиотек?