In that case it's a pointer to a pointer: since in C a function can't
multiple values, when one wants to return two strings, one needs to use
several char ** arguments in the function call.
The caller passes a reference to a pointer and the function returns the
address of a malloc-ed memory area with a return string in it.

When I write a C program I'm able to call that function and I receive the
strings, so I guess my problem is just a mapping one.

On Wed, May 25, 2016 at 5:40 PM, Bennett Todd <>

> A C char** is an array (of unknown length) of pounters to C strings ( each
> of unknown length).
> I don't know NativeCall, can't tell you how it should be declared, but I
> hope that highlights the issue.

Fernando Santagata

Reply via email to