< 返回版块

fengyexin9 发表于 2021-07-08 17:35

Tags:着急

rust 在lib中的方法返回的int类型,electron 中调用可以正常; 但是在lib中的方法返回字符串的时候,electron中调用的时候,页面就跳转并是空白,这种情况该如何操作? 若是lib中方法返回的是对象,eclectron如何接受调用的数据

评论区

写评论
Mike Tang 2021-07-09 19:49

markdown格式化一下,看不清

作者 fengyexin9 2021-07-09 09:55

rust中的代码 /// 获取计算机主机cpu核心量 #[no_mangle] pub extern "C" fn get_cpus(x: i32) -> i32 { let result: i32 = num_cpus::get() as i32; return result * x; }

#[no_mangle] pub extern "C" fn get_cpu(x: String) -> i32 { return 12; }

#[no_mangle] pub extern "C" fn get_h(x: String) -> String { String::from("hello world!") }

electron 中js代码

let obj = ffiLib(libPath, { 'res_json': ['string', []], 'get_cpus':['int',['int']], 'get_cpu':['int',['string']], 'get_h':['string',['string']] });

// window.onload=function() { // alert(1111444); var rustLib = document.getElementById("rust_lib"); rustLib.onclick = function () { alert('rust-lib'); var valu = obj.res_json(); // var test_str = str2json(obj.res_json()); // alert(test_str); // alert(JSON.stringify(test_str)); let mytext = document.querySelector('#rust_json') // mytext.innerHTML = "1111"; mytext.innerHTML = valu; // mytext.innerHTML = JSON.stringify(test_str); }

var get_cpus = document.getElementById("get_cpus");
get_cpus.onclick = function () {
    // var num = 121;
    // let mytext = document.querySelector('#rust_cups')
    // mytext.innerHTML = obj.get_cpus(num);  // 只有这一段代码 传入int,返回int 正常

    let mytext = document.querySelector('#rust_cups')
    mytext.innerHTML = obj.get_cpu("h"); // 这里错误,传入字符串,返回字符串
}
Mike Tang 2021-07-08 20:56

js调用吗?上代码。

1 共 3 条评论, 1 页