如何在Rust中从String创建std::ffi::CString?
假设String已经存储在可移动的变量中,而不是像许多构造CString示例中那样作为字面值。
我已经研究了CString和String的文档,仍然找不到解决方法。您必须通过其中的许多指针类型之一;Into和From未为这些类型实现,因此.into()无法使用。
链接: https://doc.rust-lang.org/std/ffi/struct.CString.html https://doc.rust-lang.org/std/string/struct.String.html
假设String已经存储在可移动的变量中,而不是像许多构造CString示例中那样作为字面值。
我已经研究了CString和String的文档,仍然找不到解决方法。您必须通过其中的许多指针类型之一;Into和From未为这些类型实现,因此.into()无法使用。
链接: https://doc.rust-lang.org/std/ffi/struct.CString.html https://doc.rust-lang.org/std/string/struct.String.html
CString
文档中的创建示例展示了CString::new("Hello, world!")
。虽然"Hello, world!"
不是一个String
,而是一个&str
,但如果你有一个String
,你可以使用as_str()
方法或在大多数情况下使用一个简单的引用来获取一个&str
。 - user4815162342