水晶C绑定:返回类型char *
问题描述:
我有这个签名的函数:水晶C绑定:返回类型char *
const char* get_version();
我的声明是:
fun get_version(): LibC::Char*
,并使用它:
version = MyLib.get_version()
puts version # how to convert to String?
如何我可以管理返回字符串吗?我是否还必须导入strlen来测量C字符串的长度并手动将其转换为水晶字符串?
答
用String.new(MyLib.version)
包装Char*
指针。如果你知道字符串的长度,你也可以拨打String.new(ptr, size)
。
请注意,这将复制指针中的数据,因此C绑定可能会释放其指针而不会影响水晶字符串。
非常好。我经常想念最简单的解决方案:) – Mat