Публикации по теме 'ffi'


Использование библиотек C в Rust
Практическое руководство по FFI с использованием bindgen (часть 1 из 2) Сегодня я хочу углубиться в одну из трудностей, с которыми мы столкнулись, пытаясь переписать наш код Python для Интернета вещей в Rust: в частности, FFI или интерфейс внешних функций - бит, который позволяет Rust взаимодействовать с другими языками. Когда год назад я пытался написать код Rust для интеграции с библиотеками C, существующие документы и руководства часто давали противоречивые советы, и мне..

Rust FFI против Golang FFI (cgo)
Меня поставили перед задачей, когда мне нужно было использовать много FFI; конкретно я говорю о libav . Большое количество FFI означает, что будет много вызовов между языковыми ‹-› библиотекой C более высокого уровня. Библиотека, которую мне нужно было использовать, значительна, и было бы нелегко переписать ее на этом языке. Язык программирования C не подходил, потому что в нашей компании он считается небезопасным языком, и мы не хотели начинать новый проект на C; то же самое..

Ускорьте свой JavaScript с помощью Rust
Для недавнего личного проекта мне был нужен только довольно простой сервер node.js для выполнения экспоненциальных и дорогостоящих вычислительных задач. Честно говоря, я мог бы переключить весь технологический стек, но я подсчитал, что время разработки такого выбора того не стоило ... Тем не менее, у меня были некоторые функции, на вычисление которых требовалось время. Итак, я осмотрелся и решил позволить решить эту задачу более подходящему языку, в данном случае Rust. Этот выбор..

Как использовать нативные финализаторы в Dart
Dart недавно представил финализаторы и представил их нативным библиотекам. Мне было сложно его настроить, так как документации пока не так много, и я не уверен во всех деталях. Но эта статья — мое понимание этой функции, и она может помочь вам. Прорабатывается также запуск финализаторов напрямую из Dart . Проблема Если у вас есть собственная библиотека, которую вы хотите использовать с приложением Dart/Flutter, вы можете использовать интерфейс сторонних функций Dart. Вы можете..

Вопросы по теме 'ffi'

Проблемы с оболочкой библиотеки Haskell FFI/C MPFR
Чтобы создать произвольную точность с плавающей запятой/падение вместо Double, я пытаюсь обернуть MPFR используя FFI, но, несмотря на все мои усилия, самый простой код не работает. Он компилируется, запускается, но издевательски падает после того,...
764 просмотров
schedule 21.02.2023

Руководства по реализации интерфейса сторонней функции
Прямо сейчас я работаю над языком сценариев, у которого еще нет FFI. Я хотел бы знать, как удобнее всего это сделать, предполагая, что я хотел бы написать это, как это делают крутые гики - я хотел бы написать FFI на самом языке сценариев. Язык...
1874 просмотров
schedule 07.08.2022

Как разыменовать ячейку памяти из ctypes python?
Я хочу воспроизвести следующий код c в ctypes python: main() { long *ptr = (long *)0x7fff96000000; printf("%lx",*ptr); } Я могу понять, как вызвать эту ячейку памяти как указатель на функцию, но не просто выполнить обычное разыменование:...
19932 просмотров
schedule 24.11.2022

Взламываемая реализация схемы с приличным C++ FFI
Пробовал: схема48, курица, гамбит, кложур. Я ищу реализацию схемы, которая удобочитаема (сама реализация), имеет достойную C++ ffi и хорошую поддержку отладки (поэтому, когда я получаю исключение, я должен попасть в рекурсивную реплику). Какие...
1778 просмотров
schedule 20.10.2023

Компиляция C lib и OCaml exe с его использованием, все с использованием ocamlfind
Я пытаюсь понять, как использовать ocamlfind для компиляции библиотеки C и исполняемого файла OCaml с использованием этой библиотеки C. Я собрал набор довольно глупых файлов-примеров. % cat sillystubs.c #include <stdio.h> #include...
1981 просмотров
schedule 22.05.2022

Могу ли я в Racket экспортировать функции после вызова другой функции?
Я пытаюсь создать привязку к libpython, используя схему FFI. Для этого мне нужно получить местоположение python, создать ffi-lib , а затем создать из него функции. Так, например, я мог бы сделать это: (module pyscheme scheme (require...
361 просмотров
schedule 12.06.2024

Common Lisp, CFFI и создание экземпляров c-структур
Я сидел в гугле около трех часов в поисках решения этой «проблемы». Я пытаюсь понять, как создать экземпляр структуры C в lisp, используя CFFI. У меня есть структура в c: struct cpVect{cpFloat x,y;} Простой не так ли? У меня есть...
1548 просмотров
schedule 27.07.2022

Помогите с Ruby FFI
Я просто пытаюсь сделать несколько основных вызовов Windows для печати информации с устройства ввода MIDI (клавиатуры). Вызовы работают, но первые два вызова midiInOpen и midiInStart возвращают MMSYSERR_NOMEM и MMSYSERR_INVALHANDLE . Я считаю,...
832 просмотров
schedule 05.10.2022

Декларация хранимых пустых данных
Я пытаюсь создать оболочку Haskell для библиотеки C. Базовые структуры слишком сложны, чтобы выражать их в виде явных типов, и я на самом деле не использую их, кроме как для передачи между функциями C, поэтому я использую EmptyDataDecls , чтобы...
816 просмотров
schedule 03.05.2023

Как указать структуру в качестве возвращаемого значения функции в RubyFFI?
Мне нужно загрузить несколько функций, которые возвращают структуры из самой библиотеки. attach_function 'fn_name', [], # ... What do I put here? Вики-страницы RubyFFI кажутся устаревшими, поэтому я немного потерялся. Как создать...
914 просмотров
schedule 10.01.2023

ОШИБКА: ошибка при установке ffi: ОШИБКА: не удалось создать собственное расширение gem
Я получаю эту ошибку на 64-битном Mac, и на машине установлен xcode. Building native extensions. This could take a while... ERROR: Error installing ffi: ERROR: Failed to build gem native extension....
12702 просмотров
schedule 08.02.2023

Как взаимодействовать между C и gprolog?
Я нахожусь в несколько неудачном положении, связанном с интерфейсом кода C и Prolog. У нас есть код сбора данных на C и код анализа на Gnu-Prolog. Итак, каков наилучший способ взаимодействия C и gprolog? В настоящее время я пытаюсь использовать...
715 просмотров
schedule 04.04.2023

Модуль ошибки FFI не найден
Я использую Ubuntu 64bit и Pharo 1.2.1 Я написал код FFI, который обращается к crypt (3) из glibc. Я бы хотел изменить его, чтобы получить доступ к крипте из libxcrypt, которую я устанавливаю с помощью apt-get. Когда я меняю метод с:...
1302 просмотров
schedule 06.07.2023

Определите местоположение AppData\LocalLow с помощью JNA
Я пытаюсь определить местонахождение AppData\LocalLow работы на Java с помощью JNA в Windows 7. Но ближайшая функция, доступная для работы: W32API.HRESULT SHGetFolderPath(W32API.HWND hwndOwner,int nFolder,W32API.HANDLE...
1026 просмотров
schedule 21.11.2022

Вызов предиката пролога из python
У меня есть файл .pl , и я хочу вызвать объявленный в нем предикат из скрипта python. Как я могу это сделать? Например, test.pl rD( [], Ans, Ans ). rD( [X|Xs], Ans, Acc ) :- member( X, Acc ), rD( Xs, Ans, Acc ), !. rD( [X|Xs], Ans,...
6300 просмотров
schedule 20.12.2023

Аппликативный без функтора
У меня есть тип Image , который в основном представляет собой c-массив с плавающей запятой. Легко создавать такие функции, как map :: (Float -> Float) -> Image -> Image или zipWith :: (Float -> Float -> Float) -> Image ->...
718 просмотров
schedule 31.07.2022

ОШИБКА: ошибка при установке ffi: ОШИБКА: не удалось создать собственное расширение gem
Установил DevKit и повторно запустил установку ffi… получил следующее: C:\Documents and Settings\******>gem install ffi Temporarily enhancing PATH to include DevKit... Building native extensions. This could take a while... ERROR: Error...
49755 просмотров
schedule 20.06.2023

Межбиблиотечные зависимости Haskell FFI
Я поддерживаю библиотеку augeas FFI по адресу http://hackage.haskell.org/package/augeas . Недавно Augeas добавил метод aug_to_xml , который включает параметр с введите xmlNode из libmxl2. Похоже, что libxml — это библиотека FFI для libxml2,...
146 просмотров
schedule 16.05.2022

Передача смешанных сохраняемых векторов в функцию C
У меня есть список векторов - набор типов известен и фиксирован - скажем, CInt и CChar . Список неизвестен во время компиляции - состав будет определен из файла конфигурации во время выполнения. Например, мы можем решить, что нам нужно передать...
458 просмотров
schedule 17.02.2023

Маршрутизация параметров конструктора luajit ffi
Пример в разделе руководства: "Определение метаметодов для типа C" выглядит следующим образом: local ffi = require("ffi") ffi.cdef[[ typedef struct { double x, y; } point_t; ]] local point local mt = { __add = function(a, b) return...
708 просмотров
schedule 05.01.2023