libloading
是一個 Rust 庫,用于加載動態庫(在 Unix 系統上是 .so
文件,在 Windows 上是 .dll
文件)。要使用 libloading
加載動態庫,請按照以下步驟操作:
Cargo.toml
文件中添加 libloading
作為依賴項:[dependencies]
libloading = "0.7"
libloading
庫并定義一個函數來加載動態庫:extern crate libloading;
use libloading::{Library, Symbol};
use std::error::Error;
fn load_library(lib_path: &str) -> Result<Library, Box<dyn Error>> {
let lib = Library::new(lib_path)?;
Ok(lib)
}
fn main() {
match load_library("path/to/your/dynamic_library.so") {
Ok(lib) => {
println!("Successfully loaded the dynamic library");
// 加載符號(函數)
unsafe {
let symbol: Symbol<unsafe extern "C" fn()> = lib.get(b"your_function_name").unwrap();
symbol();
}
}
Err(e) => println!("Failed to load the dynamic library: {}", e),
}
}
請將 path/to/your/dynamic_library.so
替換為你的動態庫文件的實際路徑,將 your_function_name
替換為你要調用的函數的名稱。注意,你需要使用 unsafe
塊來調用符號,因為 Symbol
是一個 unsafe
trait。
這個示例展示了如何使用 libloading
庫加載一個動態庫并調用其中的一個函數。你可以根據自己的需求修改這個示例。