8 个版本 (重大更改)
使用旧的 Rust 2015
7.0.0 | 2017年2月10日 |
---|---|
6.0.0 | 2016年10月1日 |
5.0.0 | 2016年9月2日 |
4.0.0 | 2016年9月2日 |
0.2.0 | 2016年5月13日 |
#401 在 操作系统
每月 1,068 次下载
用于 17 个 软件包(3 个直接使用)
63KB
809 行
包含 (JAR文件,54KB) gradle/wrapper/gradle-wrapper.jar
sharedlib
跨平台共享库加载器。
基于 libloading by Simonas Kazlauskas.
sharedlib 是一个用于在运行时加载共享库的软件包。这对于实现插件等功能非常有用。与其他共享库软件包相比,此软件包的优势在于它提供了寿命限制和引用计数库,并允许加载函数和数据。
快速入门
要加载库,您可以使用 Lib
、LibTracked
或 LibUnsafe
中的任何一个 struct
。这些 struct
提供了不同的保证。有关它们提供的保证的更多信息,请参阅文档中的 选择您的保证 部分。以下示例使用 Lib
调用另一个库中的函数
unsafe {
let path_to_lib = "examplelib.dll";
let lib = try!(Lib::new(path_to_lib));
let hello_world_symbol: Func<extern "C" fn()> = try!(lib.find_func("hello_world"));
let hello_world = hello_world_symbol.get();
hello_world();
}
访问另一个库中的数据
unsafe {
let path_to_lib = "examplelib.dll";
let lib = try!(Lib::new(path_to_lib));
let my_usize_symbol: Data<usize> = try!(lib.find_data("my_usize"));
let my_usize = my_usize_symbol.get();
assert_eq!(*my_usize, 0);
}
更多信息
有关更多信息,请参阅 文档。
依赖关系
~155KB