如何从Rust创建一个C ++对象?

问题描述

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

如何进行逆转?我只发现了bindgen的一些用法

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

解决方法

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

如果您需要在Rust一侧执行直接字段访问但又不想拥有访问器功能,也可以将类型声明为非透明类型(但要注意那种情况下的布局问题)。 / p>