Есть ли аналог libffi под freepascal?

Вопросы использования сторонних (не входящих в состав FPC и Lazarus) утилит и библиотек.

Модератор: Модераторы

Есть ли аналог libffi под freepascal?

Сообщение devels » 01.11.2010 20:49:06

libffi is a foreign function interface library. It provides a C programming language interface for calling natively compiled functions given information about the target function at runtime instead of compile time.

Это библиотека позволяет вызывать нативные скомпилированные функции из dll/so и других либ в рантайм, т.е. в полном рантайме. Библиотека написана на си, довольно обширная.

Вот описание: http://en.wikipedia.org/wiki/Libffi

Для многих языков она портирована, а для pascal как-то очередь не дошла.
devels
постоялец
 
Сообщения: 137
Зарегистрирован: 01.09.2010 12:14:38

Re: Есть ли аналог libffi под freepascal?

Сообщение MageSlayer » 01.11.2010 22:13:07

FreePascal - компилятор. Не думаю, что ему нужна такая обертка.

Обычные C функции и так могут вызываться - описываете прототип функции на паскале, используете паскалевские типы где нужно и external 'lib.so';cdecl; в конце.

Вот и вся ffi.
MageSlayer
постоялец
 
Сообщения: 216
Зарегистрирован: 07.09.2006 12:30:44

Re: Есть ли аналог libffi под freepascal?

Сообщение devels » 01.11.2010 23:51:20

Дело не в этом, в си/с++ можно также, но здесь полностью run-time вызов (не только название, но и кол-во параметров, их тип и метод вызова). Cи тоже компилятор и это не отговорка.

P.S. Как подключать статически и через получение адреса я знаю. Повторяю, вопрос совершенно другой.
devels
постоялец
 
Сообщения: 137
Зарегистрирован: 01.09.2010 12:14:38

Re: Есть ли аналог libffi под freepascal?

Сообщение stikriz » 02.11.2010 00:10:44

devels писал(а):Для многих языков она портирована, а для pascal как-то очередь не дошла.

Есть такой зверь: RemObjects Pascal Script for Delphi. Вот там есть вызов DLL и COM. Не знаю, портирована ли она для FreePascal. Очевидно, что при портировании будут серьезные проблемы, но поискать и выкусить вызов DLL, наверное можно.
http://goodbyamerica.sourceforge.net/PS01_rus.html - описание по русски.
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47

Re: Есть ли аналог libffi под freepascal?

Сообщение devels » 02.11.2010 00:15:18

Да я про это знаю, но код очень запутан и связан с самим движком, может быть есть примеры полегче?
devels
постоялец
 
Сообщения: 137
Зарегистрирован: 01.09.2010 12:14:38


Вернуться в Сторонние средства

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

Рейтинг@Mail.ru