外部函数接口(FFI)是一种语言与用另一种语言编写的软件交互的机制。
如何使用 JNI 从已运行的 JVM 获取 JavaVM 或 JNIEnv?
我正在做一个涉及Rust和Java的项目。我需要能够从 Rust 端使用 JNI,而无需 Java 端调用它(因为它不是我的代码)。到目前为止,我已经
我正在尝试启动logstash,但遇到问题,请检查日志跟踪: [致命][org.logstash.Logstash] Logstash 由于错误而停止处理:(LoadError) 无法加载 FFI Provi...
最近,我选择了 Nim 并开始尝试该语言提供的后端集成功能,并发现自己在这个页面 https://nim-lang.org/docs/backends.html 中得到了...
我编写的 GUI 应用程序执行提升的 diskpart /s some_script。 除了弹出一个终端窗口显示 diskpart 的执行情况之外,这工作得很好。 我想知道是否...
外部 C 库通过 FFI 分配/释放内存。我的 Rust 代码需要保存对它的引用并执行 Drop。存储对该结构的引用以及以后的引用的惯用方法是什么...
在 VSCode 中设置 Firebase 后,在 iOS 模拟器上运行 Flutter 应用程序时出现“运行 pod install 时出错”
使用 Firebase 设置 Flutter 应用程序并将应用程序连接到 Firebase 控制台后,我无法在 iOS 模拟器中运行该应用程序。 我的系统描述是 - 2017 Macbo...
我一直在玩 JDK-18 中的 jdk.incubator.foreign 东西。非常漂亮。比 JNI 快得多。速度快一个数量级。外国记忆的东西更好(也许稍微……
嗯,看了好几天Luajit ffi的文档,基本知道怎么用了。 定义符号(ffi.cdef(xxx)), 然后加载库(a = ffi.load(xxx)), 并简单地调用它们(a.xxx(....
Flutter 应用程序无法在 M2 Max 上的 macOS 上启动,建议的修复无法解决问题
同一应用程序在 M1 Max 上的 macOS 上运行没有问题。 然而,在另一台机器上,我得到: 在 macOS 上以调试模式启动 lib/main.dart... 正在运行 Pod 安装... CocoaPods 的输出: ↳ 准备...
我尝试从我的 C++ 库调用 Dart 方法。当我在设置指针的同一方法中直接调用它时,它就可以工作。当我稍后调用它时,在本例中是从另一个 C++ 方法调用它时,我得到...
LuaJIT ffi 中的用户数据从 C 函数按值返回时是否会被垃圾回收?
我正在尝试弄清楚涉及FFI 时的LuaJIT 垃圾回收。假设我有一个按值返回结构的函数。 typedef 结构 MyTestData { 整数ID; // ...其他的...
我们的主程序是用java编写的,但是从存储中提取数据的代码是用C编写的。我需要从提取的数据构建一个HDF5文件。用JNI调用C代码来g...
想象一下,C API 公开了指向某些数据的不透明指针以及指向某些字段的两个访问器 void set_string(struct foo*, const char*) 和 const char* get_string(struct foo*) 并且该文档指出
为什么链接器找不到我的本地 C 共享库以与 Rust 中的 FFI 一起使用?
我正在尝试用 Rust 包装一个相当大的 C 库。我使用bindgen 来生成绑定。 Rust 似乎对这些感到满意。然而,尽管我进行了不同的尝试并且多次阅读了 build-sc...
我想将结构数据传递给我自己的dll。为了确保数据不被丢弃,我使用Box将结构体移动到堆中,并通过Box::into_raw获取指针。不幸的是有时我会遇到一些
如何将 C 字符串转换为 Rust 字符串并通过 FFI 返回?
我正在尝试获取 C 库返回的 C 字符串,并通过 FFI 将其转换为 Rust 字符串。 mylib.c 常量字符*你好(){ 返回“你好世界!”; } 主程序.rs #![功能(link_args)] 前...
如何将 C 字符串转换为 Rust 字符串并通过 FFI 返回?
我正在尝试获取 C 库返回的 C 字符串,并通过 FFI 将其转换为 Rust 字符串。 mylib.c 常量字符*你好(){ 返回“你好世界!”; } 主程序.rs #![功能(link_args)] 前...
为什么将 `String` 转换为 `*const i8` 并返回会导致它更改其数据?
我正在做一些关于 FFI 的工作。我对 const i8 到字符串方法的转换感到困惑。我的代码如下: 使用 std::ffi::{CStr, CString}; #[代表(C)] #[导出(调试、克隆、复制)] 酒吧枚举
我正在做一些关于 FFI 的工作。我对 const i8 到字符串方法的转换感到困惑。我的代码如下: 使用 std::ffi::{CStr, CString}; #[代表(C)] #[导出(调试、克隆、复制)] 酒吧枚举
我想要一个 Rust 库向 C 公开一个 const char * 静态字符串,以与现有接口(特别是 librsync)兼容。 也就是说,C头文件有 extern char const *my_s...