ffi

    1热度

    1回答

    当一个声明了一个类型不绑定到任何东西会发生什么: type a_type type b_type let a : a_type = (* ? *) 我就遇到了这个在阅读BuckleScript FFI manual。结合一个JS对象的代码看起来是这样的: type t external create_date : unit -> t = "Date" [@@bs.new] let d

    2热度

    1回答

    我想创建并返回一个C++结构。当我尝试编译时,我目前收到cannot move out of dereference of raw pointer错误。任何想法我如何能做到这一点? #![allow(non_snake_case)] #![allow(unused_variables)] extern crate octh; // https://thefullsnack.com/en/

    3热度

    1回答

    我需要访问Rust中C导出的常量值。 我想读取实际符号的值,而不是只是将值'n'paste的价值锈(在我的情况下,该值是一个指针,和C检查指针相等)。 extern void *magic; 什么语法可以在Rust中读取magic: *const c_void?

    1热度

    1回答

    使用CFFI library for Python,我试图将一个Python字符串转换成char *,以便我可以传递它到一个接受char *的C函数。我似乎无法弄清楚正确的咒语是什么。 考虑这个例子: >>> from cffi import FFI >>> ffi = FFI() >>> ffi.new("char[]", "bob") 结果是: TypeError: initializ

    2热度

    1回答

    我正在关注一些FFI教程和示例(here和here),我想知道在使用堆栈时应该改变什么? 在这些示例中,使用gcc -c -o termops.o termops.c将源文件C编译为目标文件,并使用ghc --make -main-is FfiEx -o ffi_ex FfiEx.hs termops.o将其包含在gcc编译中。如何使用堆栈完成相同的操作?

    1热度

    1回答

    我想写一个包装了一堆c函数的haskell模块。 我想能够导入此模块像任何其他haskell模块,而不涉及c目标文件。 我找不到任何有关如何做到这一点的例子。 这是我试过的。我有交流文件 “dumbCfunctions.c”: double addThree(double x) { return x+3; } 和一个模块一个Haskell文件在其 “Callfunctions.hs

    1热度

    2回答

    我怎么会写下面的JavaScript: var element = document.querySelector('.element') element.style.color = 'red' 的原因 ? 到目前为止,我有: [@@@bs.config {no_export: no_export}]; external document : Dom.document = "documen

    2热度

    1回答

    我已经一个Haskell模块中的以下数据类型和我想写可储存instace经由FFI与C使用它: data MyType a = TypeDouble Double | TypeLst [a] | TypeAdd (MyType a) (MyType a) 我开始通过定义sizeOf功能: instance Storable a => Storable (My

    1热度

    1回答

    我想在Rust中包装一个quite large C library。我用bindgen来生成绑定。 Rust似乎满足于那些。然而,尽管我尝试了不同的尝试,并且我的许多内容都是build-script docs,但我仍然不断地发现链接问题。 我正在使用的库有一组csh脚本,最终生成了两个文件:cspice.a和csupport.a。它们都存储在我项目的cspice_linux_gcc_64bit/l

    0热度

    2回答

    我试图创建FFI绑定libmodbus,写在C. 这里我偶然发现此function modbus_set_error_recovery(ctx, MODBUS_ERROR_RECOVERY_LINK | MODBUS_ERROR_RECOVERY_PROTOCOL); 第二个参数被定义为 typedef enum { MODBUS_ERR