[Mono-list] embedding mono and returning GList
Miguel de Icaza
miguel at xamarin.com
Sun May 22 09:48:19 EDT 2011
>
> I'd like to call a managed method from c which returns a GLib.List.
> I seem to be unable to do this, however..
> my managed code looks like:
>
> public GLib.List Test()
> {
> GLib.List list = new GLib.List(typeof(string));
> list.Append("eins");
> list.Append("zwei");
> list.Append("drei");
> list.Append("vier");
>
> return list;
> }
>
> my unmanaged code looks like:
>
> MonoObject *o = mono_runtime_invoke (method, instance, NULL, &ex);
> GList *list = (GList *)o;
>
That is because the managed GList object is merely a wrapper around the real
GList.
What you are getting back is not a pointer to the C GList, but a pointer to
the managed GList; What you need to do is return the unmanaged pointer
that is wrapped by the C# GList, that would be the GList.Handle.
Miguel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-list/attachments/20110522/fdcfb36d/attachment-0001.html
More information about the Mono-list
mailing list