vault backup: 2025-12-14 09:23:13

This commit is contained in:
akulij 2025-12-14 09:23:13 +08:00
parent 633d17413d
commit 4d7ee9b819

View File

@ -369,9 +369,18 @@ crate-type = ["cdylib"] # cdylib означает, что нужно собра
```
А в src/lib.rs внесите показанный ранее код:
```rust
use std::ffi::CStr;
pub struct Cased {
cstring: *const c_char,
case: bool, // true for uppercase,
// false for lowercase
}
#[unsafe(no_mangle)]
pub extern "C" fn doublefast(x: u32) -> u32 {
x << 1
pub extern unsafe "C" fn count_case_ascii(c: Cased) -> u32 {
let cstring = unsafe { CStr::from_ptr(c.cstring) };
}
```
Соберите библиотеку. Выходным файлом получится target/debug/libmylib.so (В зависимости от вашей ОС расширение .so, используемое в linux, может замениться на .dylib в macos или .dll в windows). Можем проверить наличие символа в библиотеке для функции через nm из пакета binutils: