6

我有一个带有这个签名的函数:

const char* get_version();

我的声明是:

fun get_version(): LibC::Char*

并使用它:

version = MyLib.get_version()
puts version # how to convert to String?

如何管理返回字符串?我是否还必须导入 strlen 来测量 C 弦的长度并手动将其转换为水晶弦?

4

1 回答 1

6

Char*String.new(MyLib.version). 如果你知道字符串长度,你也可以打电话String.new(ptr, size)

请注意,这将从指针复制数据,因此 C 绑定可以释放其指针而不影响水晶字符串。

于 2016-12-28T09:34:45.677 回答