Перейти к содержанию
Fire Monkey от А до Я
  • 0

Кто подключил к Firemonkey-проекту библиотеки, написанные на других языках?


Sascha

Вопрос

Рекомендуемые сообщения

  • 0
13 часов назад, Sascha сказал:

Вот есть .so-файл, который хочется вызывать из своего firemonkey-проекта (для Android), но как? Нужно создавать бридж?

Можно подробную инструкцию? Спасибо

На сколько память не изменяет, то деплоить ее, загружать как dll в Win ну и работать

Ссылка на комментарий
  • 0

деплоить библиотеку используя RemotePath library\lib\arm64-v8a\ (это для Android64) 

DLL_PATH:=TPath.GetLibraryPath+'/';

function MySafeLoadLibrary(ModuleName:string):HMODULE;
var
  errorMsg:string;
begin
  Result:=0;
  ModuleName:=DLL_PATH+ModuleName;

  if FileExists(ModuleName) then
  begin
    Result:=LoadLibrary(PChar(ModuleName));
  end;

  if Result = 0 then
  begin
    errorMsg:=string(UTF8Decode(dlerror));
    errorMsg:=Format('Can not load %s error:%s', [ModuleName, errorMsg]);
    ShowMessage(errorMsg);
    raise Exception.Create(errorMsg);
  end;
end;

 

Ссылка на комментарий
  • 0
В 07.10.2021 в 14:22, gonzales сказал:

деплоить библиотеку используя RemotePath library\lib\arm64-v8a\ (это для Android64) 

DLL_PATH:=TPath.GetLibraryPath+'/';

function MySafeLoadLibrary(ModuleName:string):HMODULE;
var
  errorMsg:string;
begin
  Result:=0;
  ModuleName:=DLL_PATH+ModuleName;

  if FileExists(ModuleName) then
  begin
    Result:=LoadLibrary(PChar(ModuleName));
  end;

  if Result = 0 then
  begin
    errorMsg:=string(UTF8Decode(dlerror));
    errorMsg:=Format('Can not load %s error:%s', [ModuleName, errorMsg]);
    ShowMessage(errorMsg);
    raise Exception.Create(errorMsg);
  end;
end;

 

 

А что есть dlerror у вас? Откуда она берется?

Ссылка на комментарий
  • 0

если я правильно понимаю, то импортирование функций идет по имени, соответственно использовать библу без описания не получится.

av_get_channel_layout_string:procedure(buf : PAnsiChar;buf_size : Integer;nb_channels : Integer;channel_layout : int64_t)  ;
    cdecl;

@av_get_channel_layout_string:=SafeGetProcAddress(AVUtilHandle, 'av_get_channel_layout_string');

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...