From: Jan Dvorak Date: 2008-01-23T01:24:03+09:00 Subject: Re: Swig: how to convert char* to Array? On Monday 21 January 2008 19:58:44 Adam Bender wrote: > I have a C++ library that I'm trying to access in Ruby. One of the C++ > functions returns a char* and I would like this to be converted to an Array > (since the char* may have 0x00 in it, which terminate a Ruby string > prematurely). I'm trying to write a typemap for the conversion, but I'm > getting stuck on determining the length of the array -- I can't pass that > as a parameter, since this is an *out* typemap. So my question is, does > anyone have a way to convert char* to Array in Swig, hopefully with an > example? Thanks! Ruby strings are not null-terminated, so they may contain 0x00 as well as any other char. Of course when converting from C char* you have to specify the length: VALUE rubystring; char str[] = {'a','b',0x00,'c'}; rubystring = rb_str_new(str,4); Jan