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