我有一个看起来像这样的防锈功能:
#[no_mangle]
pub fn convert(inp_a: f32, inp_b: f32) -> (i32, i32) {
// some things happen
return (res_a, res_b)
}
这可以按预期工作。
但是,如果我尝试从Python调用它,就像这样:
from ctypes import cdll, c_float
from sys import platform
if platform == "darwin":
ext = "dylib"
else:
ext = "so"
lib = cdll.LoadLibrary('target/debug/foreign.' + ext)
convert = lib.convert
a = -0.32824866
b = 51.44533267
print convert(c_float(a), c_float(b))
我只返回结果的前半部分,作为int
。
我做错了什么?