ffi相关内容

获取固定驱动器列表

如何才能仅获取实体驱动器的所有装入点的列表?我看到这里有类似的答案,但它列出了包括网络共享在内的所有装入点。 How can I get a listing of all drives on Windows using golang? 推荐答案 好了,我已决定重拾Win32API编程技能并准备解决方案。 基于the thread you referred to中的LAME方 ..
发布时间:2022-07-17 17:44:46 其他开发

无法分别构建FightWeb和Ffltter移动应用程序

我正在构建一个颤动项目,在单个项目中集成Web和移动代码时遇到了一个问题。我想在我的移动代码中使用Moor和Moor_FFI,但即使我的Web(main.dart)和移动代码(main.dev.dart)的入口点被配置为不同于调试,它仍然尝试为Web编译移动代码。这会导致问题,因为Ffltter Web目前不支持FFI和其他DART插件,从而导致大量错误消息。 Error compiling ..
发布时间:2022-04-23 18:45:58 其他开发

从 Julia 更新 C 结构的字段值

我的问题很简单,但我不知道最好的方法(或者 Julia 目前不提供这种方法):如何从 Julia 设置 C 结构的字段值? 假设您有一个结构类型来表示 C 库中树的节点: typedef struct node_s{整数类型;node_t* 下一个;node_t* 孩子;node_t* 父节点;} 节点_t; 并将其复制到 Julia 中: 不可变的node_t类型::Cint下一个: ..
发布时间:2022-01-23 19:49:21 其他开发

错误:安装 ffi 时出错:错误:无法构建 gem 原生扩展

安装了 DevKit 并重新运行了 ffi 安装……将其作为输出: C:\Documents and Settings\******>gem install ffi暂时增强 PATH 以包含 DevKit...构建原生扩展.这可能需要一段时间...错误:安装 ffi 时出错:错误:无法构建 gem 原生扩展.C:/Ruby192/bin/ruby.exe extconf.rb检查 ffi.h.. ..
发布时间:2022-01-18 17:45:25 其他开发

使用 C 回调用户数据存储盒装 Rust 闭包时出现分段错误

我正在围绕 C API 创建一个 Rust 包装器.此 C API 中的一个函数设置回调并接受将传递给回调的 void 指针.它存储对回调和用户数据的引用以供以后使用,因此我使用 this answer 中的最后一个代码部分. 这是我的代码.Test::trigger_callback(...) 函数旨在模拟调用回调的 C 库. extern crate libc;使用 libc::c_v ..
发布时间:2022-01-12 16:28:18 其他开发

如何在 Rust 的 FFI 中使用 C 预处理器宏?

我正在编写一些代码来连接用 C 编写的现有库.在我的 Rust 代码中,我希望能够使用来自 CPP 宏的值.如果我有一个如下所示的 C include.h: #define INIT_FLAG 0x00000001 我希望能够像这样在 Rust 中使用它: #[link(name="mylib")]外部{发布静态 init_flag: c_int = INIT_FLAG;} 我查看了其他 ..
发布时间:2022-01-11 19:50:04 其他开发

使用`as_ptr()`时如何阻止内存泄漏?

由于这是我第一次学习系统编程,我很难理解规则.现在,我对内存泄漏感到困惑.让我们考虑一个例子.比如说,Rust 正在抛出一个指针(指向一个字符串),Python 会捕捉到这个指针. 在 Rust 中,(我只是发送 CString 的指针) 使用 std::ffi::CString;pub extern fn do_something() ->*const c_char {CString:: ..
发布时间:2021-12-30 23:47:26 Python

如何通过原始指针将闭包作为参数传递给 C 函数?

我正在 Rust 中使用 WinAPI,并且有一些功能(例如 EnumWindows()) 需要回调.回调通常接受一个额外的参数(LPARAM 类型,它是 i64 的别名),您可以使用它向回调传递一些自定义数据. 我已将 Vec 对象作为 LPARAM 发送到 WinAPI 回调,并且运行良好.例如,在我的情况下,将 lparam 值“解包"到 Vec 看起来像这样: unsafe ext ..
发布时间:2021-12-25 09:54:45 其他开发

分配数据以传递给 FFI 调用的正确方法是什么?

在 讨论/学习从 Rust 调用 Windows-API 的 FFI 的正确方法,我进一步研究了它,并想再次检查我的理解. 我有一个被调用两次的 Windows API.在第一次调用中,它返回实际输出参数所需的缓冲区大小.然后,使用足够大小的缓冲区再次调用它.我目前使用 Vec 作为这个缓冲区的数据类型(见下面的例子). 代码有效,但我想知道这是否是正确的方法,或者使用像 alloc: ..
发布时间:2021-12-25 09:44:31 其他开发

如何将 Rust 闭包转换为 C 风格的回调?

我正在尝试为一段 C API 编写一个 Rusty 包装器.有一个 C 结构我很挣扎: typedef bool (*listener_t) (int, int);bool do_it(int x1, int y1, int x2, int y2, listener_t 监听器) 除非侦听器返回 false,否则该函数会针对一系列数字执行其工作.在这种情况下,它会中止计算.我想要一个像这样的 ..
发布时间:2021-12-25 09:34:02 其他开发

在 C 中,给定一个可变参数列表,如何使用它们构建函数调用?

假设有一个以某种方式存储的参数列表,例如在一个数组中. 给定一个函数指针,我如何通过存储的参数列表调用它? 我不想将数组作为参数传递,好吧.你明白了,好吗?我想将它的每个元素作为参数传递.数组只是为了说明,我可以将参数存储在某个元组结构中.另外,看看我手头有一个函数指针并且可能有一个字符串格式的签名.我不是要定义一个能够处理可变参数列表的函数. 我看到如何做到这一点的唯一方法是使 ..
发布时间:2021-12-18 08:57:24 其他开发

从 Python 调用 Haskell 函数

我想使用 Python 中的一些 Haskell 库(例如 Darcs、Pandoc),但在 Python 中似乎没有直接与 Haskell 的外部函数接口.有没有办法做到这一点? 解决方案 只要你能让你的 Python 代码调用 C,你就可以调用通过 导出的 Haskell 函数.haskell.org/haskellwiki/FFI_Introduction" rel="norefer ..
发布时间:2021-12-14 12:12:52 Python

ffi 上的捆绑更新失败

我正在尝试对 Rails 应用程序执行 bundle update,但出现以下错误: 使用本机扩展安装 ffi (1.0.11) 不幸的是,发生了致命错误.请将此错误报告给位于 https://github.com/carlhuda/bundler/issues 的 Bundler 问题跟踪器,以便我们修复它.谢谢!/Users/Kyle/.rvm/rubies/ruby-1.9.3-p125/ ..
发布时间:2021-12-12 11:28:00 其他开发

将 Numpy 数组传递给 C 函数以进行输入和输出

哦,我是个傻瓜.我只是在调用函数时省略了第二个和第三个参数.像个傻瓜.因为这就是我.原来的愚蠢问题如下: 这个好像应该是很常见的事情了,但是找不到相关教程,对Numpy和ctypes太无知了自己想办法. 我在文件 ctest.c 中有一个 C 函数. #include void cfun(const void * indatav, int rowcount, int colcount ..
发布时间:2021-12-08 09:42:39 Python