Публикации по теме '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