使用ctypes调用的Rust函数仅返回第一个值

时间:2015-06-21 16:39:00

标签: python rust ctypes

我有一个看起来像这样的防锈功能:

#[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

我做错了什么?

0 个答案:

没有答案