On Monday, November 23, 2015 at 3:25:07 PM UTC, Liz Huang wrote:
>
>
>
> Thanks!
>
> Strange that I am able to get error message before just using char *,
> thought
> it meant passing string by pointer already.
>
> it does, but if you want to allocate a new buffer and have the caller
access that then you need pointer to a pointer
> I change the argument to char ** errMsg, but in Ruby, when I tried to
> convert the pointer to string, I got error message:
>
> [snip]
> if options.is_a?(::JSON::State)
> # Called from JSON.{generate,dump}, forward it to JSON gem's to_json
> self.to_json_without_active_support_encoder(options)
> else
> # to_json is being invoked directly, use ActiveSupport's encoder
> ActiveSupport::JSON.encode(self, options)
>
> Do I need to change anything in ruby file when use a pointer?
>
>
Yes. You need to allocate a pointer size bit of memory for the C function
(via Fiddle::Pointer). The C function fills that in, you then use the ptr
method on Fiddle::Pointer to get the memory allocated by the C function,
and create your string from there. (don't forget to free the memory too)
Fred
--
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/rubyonrails-talk/f4735ef5-295e-40ac-9955-587e40c7cf0d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.