ffi

    -1热度

    2回答

    我试着打功能的math.htan这种方式(直接复制声明)和它的作品: local ffi = require("ffi") ffi.cdef[[ double tan(double x); ]] print(ffi.C.tan(45)) 但是,当我试图调用该函数的time.hlocaltime以同样的方式: local ffi = require("ffi") ffi.cde

    0热度

    1回答

    我有一个很大的问题....不能解决它。 我有免费的pascal程序和lua脚本。 function getString(i:integer):PChar;public; stdcall; begin //something to do Result:=strnew(PChar('newString')); end 通过将注册功能有Lua的实施 ffi.cdef [[ char*__

    1热度

    1回答

    我想将一个Lua脚本加载到我的C++应用程序中并运行它。 我决定使用LuaJIT来利用它的FFI库。 但我有这个奇怪的问题,在我的Lua脚本不能看到我在我的C++代码中定义的函数符号,我得到在运行我的应用程序此错误: 未定义的符号:test_func_a 下面 是我的C++和Lua代码: // C++ // #include <stdlib.h> #include <stdio.h> #inc

    0热度

    2回答

    我正在编写一个与英特尔的DPDK接口的Rust程序,并且我遇到了一个我不太明白的问题。我目前可以从在锈病程序DPDK库执行的功能,但它在从写入C. 锈病程序输出相同的程序的结果不同 - ~/Dev/rust_eal_init_test$ sudo target/debug/rust_eal_init_test EAL: Detected 8 lcore(s) EAL: No free huge

    6热度

    1回答

    我试图从一个Haskell应用巴斯勒USB3相机接口连接时,但我遇到了一些困难。该相机配备了一个C++库,使得它非常直截了当。下面的代码可用于获取摄像机源: extern "C" { void basler_init() { PylonAutoInitTerm pylon; CInstantCamera camera(CTlFactory::GetInstance()

    1热度

    1回答

    我试图从C函数中检索一个原始指针在生锈,并使用相同的原始指针作为另一个C函数从另一个库中的参数。当我传递原始指针时,我最终在C端有一个NULL指针。 我试图让我的问题的一个简化版本,但是当我做工作,我会期待它 - C代码 - struct MyStruct { int value; }; struct MyStruct * get_struct() { struct My

    0热度

    1回答

    我正在FFI库中工作,并且遇到过这种模式,我不知道如何处理地道。 impl CanVoidStar for str { fn as_cvoid_ptr(&self) -> *const c_void { let string = CString::new(self).unwrap(); unsafe { return mem::transmute(s

    1热度

    1回答

    我想暴露一个“动态数组”到C函数。 C函数将拥有数据,稍后将调用我的函数来释放数据。所以它会看起来像下面这样: fn get_something(len: *mut usize) -> *mut u8; fn dealloc_something(data: *mut u8, len: usize); 国内我有一个Box<[T]>(my_vec.to_boxed_slice())。我可以很容易

    1热度

    2回答

    discussing/learning about the correct way to call a FFI of the Windows-API from Rust之后,我玩了一下,想再仔细检查我的理解。 我有一个Windows API被调用两次。在第一次调用中,它将返回实际out参数所需的缓冲区大小。然后,第二次调用足够大小的缓冲区。我目前使用Vec作为此缓冲区的数据类型(请参阅下面的示例)

    0热度

    1回答

    我升级我的ocaml到4.03.0。 然后,一些包装库无法生成“没有提供实现”错误。 我准备一个小例子来解释我的情况。 我写在hello_stubs.c #include<stdio.h> #include<caml/mlvalues.h> CAMLprim value caml_print_hello(value unit) { printf("Hello\n"); r