Описание тега ffi

Интерфейс внешних функций (FFI) - это механизм взаимодействия одного языка с программным обеспечением, написанным на другом языке.
1 ответ

Как использовать Lua FFI с функциями C++

Я следовал этому руководству, чтобы создать интерфейс FFI для некоторого кода C, чтобы поджечь Однако это не работает для функций C++. Это вообще возможно, если да, то как? Я создал общую библиотеку из файла C++ (simple.cpp) следующим образом: g++ -…
16 мар '16 в 12:48
2 ответа

Невозможно установить ffi gem

Я пытаюсь выполнить пакетную установку в Windows 7 x64, но получаю ошибки при установке собственных расширений для ffi gem. Мой Gemfile не имеет ffi gem. Единственная зависимость в "капибара". Вторая странная вещь заключается в том, что капибара упо…
09 июл '12 в 15:48
2 ответа

Как использовать hsc2hs для привязки к константам, функциям и структурам данных?

Мне нужен пример, как использовать hsc2hs, я подумал, что когда я пишу заголовочный файл, например: // foo.h #define PI 3.14159 typedef struct { int i1; int i2; } foo; struct foo2 { int i1; int i2; }; int fooFkt(foo f); и затем создайте файл hsc как…
19 май '11 в 09:13
1 ответ

Медленный FFI.cast в Луаджите

Не могли бы вы объяснить низкую производительность FFI.cast в следующем фрагменте? prof = требуется профиль местный ffi = требуется ("ffi") ffi.cdef [[ struct message { int field_a; }; ]] функция cast_test1() bytes = ffi.new("char[100000000]") сумма…
04 фев '16 в 16:30
1 ответ

Как составить реквизит через компонент в связывании разума-реакции?

В настоящее время я пишу привязку "реакция на реакцию материала" с интерфейсом пользователя и хочу узнать, как я могу повторно использовать ранее заданные реквизиты. Компонент Select распространяет все входные реквизиты в себя, в базовую реагирующую…
2 ответа

Посторонние данные и сборка мусора

Когда я выделяю некоторые данные через FFI и связываю с ними финализатор, я получаю ForeignPtr в Хаскеле. Когда этот указатель становится не связанным, GC собирает указатель, что приводит к запуску финализатора. Но сбор происходит только тогда, когд…
29 дек '17 в 21:11
0 ответов

Как не заклинить потоки ruby ​​при использовании OSX Cocoa FFI?

Отслеживая проблемы с многопоточностью при разработке приложений для настольных компьютеров, я выделил одну из нескольких проблем с многопоточностью, которые я хотел бы избежать, чтобы, надеюсь, довести мир до такой степени, что реальная разработка …
15 мар '14 в 22:40
1 ответ

Ruby FFI не находит определенные функции?

Я пытаюсь использовать библиотеку FFI в Ruby для связывания функций из библиотеки bitcoin-core secp256k1. Чтобы сделать функцию secp256k1_ecdsa_sign доступной, я собрал libsecp256k1 с помощью автоинструментов (как указано в README.md). Затем я созда…
15 ноя '16 в 16:48
0 ответов

Сбой узла при попытке получить более 500kb текстовых /json-данных из cpp dll

// код cpp ifstream myfile; myfile.open("D:\Spot\data\simpledata.txt"); string content((std::istreambuf_iterator(myfile)), (istreambuf_iterator())); myfile.close(); char* chr = &content[0]; return char; // код узла var libSpotcolor = ffi.Library…
0 ответов

Ошибка выполнения: ошибка ffi_prep_cif

Я работаю над проектом, где я должен использовать ctypes для вызова нескольких функций C из файла C в скрипте Python. Я создал общий объект из файла C и использовал его в своем скрипте Python. Я определил структуру C в ctypes, но я получаю RuntimeEr…
11 июл '17 в 16:41
1 ответ

Функция PureScript FFI без возвращаемого значения, только побочные эффекты

Как правильно вызвать / определить стороннюю функцию, которая ничего не возвращает. Что я делаю неправильно? Renderer.purs: module Renderer where import Prelude import Effect (Effect) foreign import renderMd :: String -> Effect Unit Renderer.js: …
12 окт '18 в 17:15
2 ответа

Инициализация библиотеки unsafePerformIO и FFI

Я создаю модуль FFI для библиотеки в C, которая хочет, чтобы единовременная не реентерабельная функция вызывалась раньше, чем что-либо еще. Этот вызов идемпотентен, но с состоянием, так что я мог бы просто вызывать его при каждом вызове на Haskell. …
03 янв '13 в 18:46
1 ответ

Написание ассемблера на Perl

Я хочу написать небольшой ассемблерный код и вызвать его из Perl: Я смотрю на cpan и нахожу эти 2 модуля Perl https://metacpan.org/pod/Inline::ASM который очень старый https://metacpan.org/pod/FFI::Platypus::Lang::ASM которых упоминается, что можно …
17 янв '19 в 01:39
3 ответа

Конвертировать Haskell ByteStrings в C++ std::string

Я хочу преобразовать строгий ByteStrings из Haskell в C++ std::string передать его в библиотеку C++ через FFI. Как ByteString может содержать NULL персонажи, превращая в CString в качестве промежуточного шага не является жизнеспособным. Какой правил…
26 май '11 в 14:35
1 ответ

Что возвращается, когда функция RFI FFI возвращает структуру без #[repr(C)] для C?

РЕДАКТИРОВАТЬ: было отмечено, что мой пример не является достаточно полным, чтобы быть полезным. Мой вопрос решен, но если вы заинтересованы в просмотре полного кода, вы можете увидеть его здесь. Учитывая следующий код: #[no_mangle] pub extern "C" f…
22 янв '19 в 02:38
2 ответа

UnsatisifedLinkedError: Не удалось найти библиотеку-заглушку в файле JAR

Я пытаюсь использовать эту библиотеку jnr-jffi. Кажется, что он зависит от jffi, поэтому я также создал его и включил в папку libs. Мой код для загрузки собственного кода выглядит следующим образом: MATH_LIB = LibraryLoader.create(MathLib.class).loa…
03 апр '16 в 14:06
1 ответ

Как я могу получить целое число размером с машину для FFI?

Имея дело с иностранным кодом, я должен взять указатели на структуру C вида typedef struct { int two; int nd; char typekind; ... } PyArrayInterface; Очевидно размер int неизвестно Как мне представить эту структуру в ржавчине? Это, вероятно i32, но я…
25 окт '15 в 15:40
1 ответ

Реализация форка на JRuby

Я пытаюсь реализовать fork в JRuby, Я занимаюсь обезьяной fork который внутренне использует FFI для выполнения вызова вилки. Затем он возвращает дочерний pid. require 'ffi' module Exec extend FFI::Library ffi_lib FFI::Library::LIBC attach_function :…
30 сен '13 в 19:50
2 ответа

Может ли in-C на Haskell вернуть typedef к указателю на функцию?

Я работаю с базой кода C, для которой typedef void(* wl_notify_func_t) (struct wl_listener *listener, void *data) //... struct wl_listener { struct wl_list link; wl_notify_func_t notify; //<-- I'd like to return this }; и использовали код на Hask…
22 янв '19 в 20:25
3 ответа

CPP: макросы в Haskell

Я использую bindings-DSL, чтобы помочь разобраться с некоторыми шаблонами в декларациях FFI. Но я обнаружил, что объявляю группы связанных функций, которые отличаются только парой текстовых элементов, и я бы действительно объявил их с помощью макрос…
23 апр '14 в 22:06