diff --git a/src/api.rs b/src/api.rs index f737243e7..19779995e 100644 --- a/src/api.rs +++ b/src/api.rs @@ -1,8 +1,10 @@ +use std::ffi::c_char; + use crate::plugins::PLUGIN_REGISTRAR; // API provided by RustDesk. -pub type LoadPluginFunc = fn(*const i8) -> i32; -pub type UnloadPluginFunc = fn(*const i8) -> i32; +pub type LoadPluginFunc = fn(*const c_char) -> i32; +pub type UnloadPluginFunc = fn(*const c_char) -> i32; #[repr(C)] pub struct RustDeskApiTable { @@ -11,12 +13,12 @@ pub struct RustDeskApiTable { } #[no_mangle] -fn load_plugin(path: *const i8) -> i32 { +fn load_plugin(path: *const c_char) -> i32 { PLUGIN_REGISTRAR.load_plugin(path) } #[no_mangle] -fn unload_plugin(path: *const i8) -> i32 { +fn unload_plugin(path: *const c_char) -> i32 { PLUGIN_REGISTRAR.unload_plugin(path) } diff --git a/src/plugins.rs b/src/plugins.rs index 7356380d3..4e44a2643 100644 --- a/src/plugins.rs +++ b/src/plugins.rs @@ -75,7 +75,7 @@ pub struct PluginRegistar { } impl PluginRegistar

{ - pub fn load_plugin(&self, path: *const i8) -> i32 { + pub fn load_plugin(&self, path: *const c_char) -> i32 { let p = unsafe { CStr::from_ptr(path) }; let lib_path = p.to_str().unwrap_or("").to_owned(); let lib = unsafe { libloading::Library::new(lib_path.as_str()) }; @@ -100,7 +100,7 @@ impl PluginRegistar

{ -1 } - pub fn unload_plugin(&self, path: *const i8) -> i32 { + pub fn unload_plugin(&self, path: *const c_char) -> i32 { let p = unsafe { CStr::from_ptr(path) }; let lib_path = p.to_str().unwrap_or("").to_owned(); match PLUGIN_REGISTRAR.plugins.write().unwrap().remove(&lib_path) {