From: Guillaume Marcais Date: 2004-12-09T12:17:57+09:00 Subject: Re: Pointer of pointer with Ruby/DL Le 8 d�c. 04, � 12:25, Kent Sibilev a �crit : > Try this: > msgp = DL.malloc(DL.sizeof('P')) > r = Tenant2Auth.public_tenant2_auth_pap_auth("coucou", "titi", > msgp.ref) > puts msgp.to_s Works great, thanks. Guillaume. > Cheers, > Kent. > On Dec 8, 2004, at 10:13 AM, Guillaume Marcais wrote: > >> I have the following C prototype: >> >> int auth(char *user, char *passwd, char **msgp); >> >> I pass user and passwd, and I get in response 0 or 1 for success or >> failure and a message in *msgp. >> >> How can i call this function from Ruby using Ruby/DL? So far I did the >> following: >> >> >> module Auth >> extend DL::Importable >> dlload "./auth.so" >> extern "int auth(char *, char *, char **)" >> end >> >> msgp = [0].pack('L').to_ptr >> r = Tenant2Auth.public_tenant2_auth_pap_auth("coucou", "titi", msgp) >> >> >> I get the correct result in 'r'. But how do I get access to the string >> in *msgp? >> >> I guess I don't yet have a good grasp on pointer dereferencing with >> Ruby/DL. >> >> Anyone? >> >> Guillaume. >> >> > >