使用旧的 Rust 2015
0.0.3 |
|
---|---|
0.0.2 |
|
0.0.1 |
|
#113 in #c
6KB
81 行
Rust 的 C API 辅助函数
辅助函数,允许 C 程序在 Rust 库中创建和释放对象。
注意:一旦 Box::from_raw/into_raw 稳定,此功能将过时。
请参阅 crates.io。
lib.rs
:
这些是构建具有 "alloc" 和 "free" 方法的 C API 的辅助方法,用于处理 Rust 对象的内存分配。
方法对 to_c_owned()
和 to_owned_from_c()
允许将 Rust 对象的所有权传递给 C 并返回。
您可以使用 to_c_owned()
创建一个 Rust 对象并将其传递给 C,而不需要在程序的 Rust 部分中保留该对象的引用。
通过 to_c_owned()
传递给 C 的任何对象都必须通过 to_owned_from_c()
来回收。您需要创建一个用于释放对象的 C 函数,然后调用 to_owned_from_c()
。
C 所拥有的对象可以通过使用 &T
作为 extern "C"
的函数类型从 Rust 返回。如果出于某种原因您声明了接受指针的函数,则可以通过 as_ref_from_c()
获取引用,但这通常是不必要的。
mut
和 const
方法的 mut
和 const
版本仅为了方便,可以互换。