Всем привет! Допустим есть *.dll/*.so файл собранный в Lazarus. Либа закрытая, объектных файлов не будет. Lazarus позволяет аки делфи прописать ручками импортируемые функции и не париться, но в rust не нашёл историй успеха. Как мне импортировать функции из этой библиотеки в Rust?
Пытался так, но не катит:
extern crate libc;
use libc::{c_int};
#[link(name = "anal_zond")]
extern {
fn lib_version(major: *const c_int, minor: *const c_int, revision: *const c_int);
}
pub fn library_version() -> Option<Vec<i32>> {
let major: c_int = 0;
let minor: c_int = 0;
let revision: c_int = 0;
unsafe {
lib_version(&major, &minor, &revision);
}
Some(vec![major, minor, revision])
}
#[cfg(test)]
mod tests {
use super::library_version;
#[test]
fn it_works() {
let version = library_version().unwrap();
println!("{:?}", version);
}
}
Хочется, что бы Rust компилировал даже в отсутствие библиотеки X, и чтобы не запускался исполняемый файл без неё, реально ли так?