use std::ffi::CStr; use std::os::raw::c_char; use std::os::raw::c_int; #[no_mangle] #[derive(Debug)] pub struct Bidule { pub i: c_int } #[no_mangle] pub extern fn afficher( s: *const c_char, b: *mut Bidule ) -> i8 { // 'mut' au lieu de 'const' unsafe { let mut b: &mut Bidule = match b.as_mut() { // &mut Bidule Some( b ) => b, None => return -1 }; b.i += 1; match CStr::from_ptr(s).to_str() { Ok( texte ) => println!( "[{:?}] votre message : {:?}", b, texte ), Err( _ ) => return -1 } 0 } }