c++ - 如何从 Rust 创建 C++ 对象?

标签 c++ rust ffi

我知道一个 Box<SomeRustStruct>可以解释为原始指针 SomeRustStruct*在 C++ 中,当结构具有 C 表示时。
反过来怎么做?我只发现了一些 bindgen 的用法。
如何在 Rust 中创建并保存指向 C++ 对象的指针?

最佳答案

和你一样create and hold a pointer to a C object in Rust :C++ 类型将在 Rust 端由一个不透明的结构 S 表示,指针是一个 *mut S .
如果您需要在 Rust 端执行直接字段访问但不(想要)具有访问器功能,您还可以将该类型声明为非不透明类型(但要注意这种情况下的布局问题)。

关于c++ - 如何从 Rust 创建 C++ 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64475428/

相关文章:

c++ - 访问派生类中成员变量的地址。当成员具有不同的访问说明符时行为会发生变化

windows - 由于 SSL 连接错误,Cargo 无法下载文件

python - Poetry install --no-dev 需要安装 Rust 吗?

dart - dart FFI 中 'Native Type' 的 'char*' 是什么?

c++ - Haskell FFI内存分配性能问题

c++ - 如何最好地控制迭代方向?

c++ - 带 std::index_sequence 的三元运算符

c# - 使用按位运算从 int 日期中提取月份 (yyyyMMdd)

rust - 一次实现多个新类型的特征

rust - 如何在不调用其中一个函数的情况下链接 C 库?