[Mono-list] NullReferenceException when calling thunk
Robert Jordan
robertj at gmx.net
Thu Jan 24 09:55:53 UTC 2013
On 23.01.2013 06:43, tomason wrote:
> MonoClass *mclass = mono_object_get_class(mobj);
> g_mmethod = mono_class_get_method_from_name(mclass, "Add", 2);
> g_mthunk = (MonoAddFunc)mono_method_get_unmanaged_thunk(g_mmethod);
>
> Where MonoAddFunc is defined like this:
> typedef float (*MonoAddFunc)(MonoObject*, float, float);
>
> This is the C# Add method:
>
> public float Add(float a, float b) {
> return a + b;
> }
>
Oops, I didn't notice that the signature doesn't include
the mandatory MonoException** pointer. It should read:
typedef float (*MonoAddFunc)(MonoObject*, float, float,
MonoException**);
MonoException* ex;
g_mthunk(g_mobj, 0.00001f, 0.00002f, &ex);
if (ex) {
// handle exception
}
That's why your test was failing.
Robert
More information about the Mono-list
mailing list