【问题标题】:How to create a C++ object from Rust?如何从 Rust 创建 C++ 对象?
【发布时间】:2020-10-22 04:41:25
【问题描述】:

我知道 Box<SomeRustStruct> 在 C++ 中可以解释为原始指针 SomeRustStruct*,当结构具有 C 表示时。

如何反其道而行之?我只发现了一些bindgen的用法。

如何在 Rust 中创建和保存指向 C++ 对象的指针?

【问题讨论】:

    标签: c++ rust ffi


    【解决方案1】:

    create and hold a pointer to a C object in Rust 相同:C++ 类型将由 Rust 端的不透明结构 S 表示,指针是 *mut S

    如果您需要在 Rust 端执行直接字段访问但不(想要)具有访问器函数,您也可以将该类型声明为非透明类型(但在这种情况下要注意布局问题)。

    【讨论】:

    • 您能解释一下如何将 C++ 中的新对象返回给 Rust 吗?不透明类型需要一些转换,对吧?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    • 2013-04-06
    相关资源
    最近更新 更多