From: Kent Sibilev Date: 2004-12-09T02:25:05+09:00 Subject: Re: Pointer of pointer with Ruby/DL Try this: msgp = DL.malloc(DL.sizeof('P')) r = Tenant2Auth.public_tenant2_auth_pap_auth("coucou", "titi", msgp.ref) puts msgp.to_s 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. > >