我正在尝试制作一个Rust dylib,并使用其他语言,如C,Python等.我已成功调用了一个Rust函数和来自python的i32参数.现在我正在尝试创建一个函数,它接受一个数组(指向它的指针,或者将数据集传递给Rust lib所需的任何东西).
#![crate_type = "dylib"]
#[no_mangle]
pub extern fn rust_multiply(size: i32, arrayPointer: &i32) -> i32
{
*(arrayPointer)
}
Run Code Online (Sandbox Code Playgroud)
这按预期工作.但
#![crate_type = "dylib"]
#[no_mangle]
pub extern fn rust_multiply(size: i32, arrayPointer: &i32) -> i32
{
*(arrayPointer + 1) // trying to get next element
}
Run Code Online (Sandbox Code Playgroud)
失败了
src/lib.rs:5:2: 6:2 error: type `i32` cannot be dereferenced
src/lib.rs:5 *(arrayPointer + 1)
src/lib.rs:6 }
Run Code Online (Sandbox Code Playgroud)
这个:
pub extern fn rust_multiply(size: i32, array: &[i32]) -> i32
Run Code Online (Sandbox Code Playgroud)
做一些像array[0]"length = 0"错误的失败.