问题描述
我知道,当结构具有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>