On 10.03.2017 23:30, Robert Jordan wrote:
On 10.03.2017 21:54, howard.rubin wrote:
Maybe I'm missing something, but changing
mono_runtime_invoke(ptFCtor, ptF, args, &exception);
to
mono_runtime_invoke(ptFCtor, mono_object_unbox(ptF), args,
&exception);
There are more mono_runtime_invokes in your code
which must be changed. For example, this one:
args[0] = ptF;
mono_runtime_invoke(MyClassMethod, nullptr, args, &exception);
It must be:
args[0] = mono_object_unbox(ptF);
mono_runtime_invoke(MyClassMethod, nullptr, args, &exception);
Long story short, here is the array manipulation code
which should go right above the invocation of
MyNamespace.MyClass:PrintArray(System.Drawing.PointF[])
// create 1 element array of PointF
MonoArray* arrayPtF = mono_array_new(domain, ptFClass, 1);
// compute size of an array element
int esize = mono_array_element_size (
mono_object_get_class ((MonoObject *)arrayPtF));
// get a ptr to the array element at index 0
void *ptr = mono_array_addr_with_size(arrayPtF, esize, 0);
// copy ptF into the array
memcpy(ptr, mono_object_unbox(ptF), esize);
Robert
_______________________________________________
Mono-devel-list mailing list
[email protected]
http://lists.dot.net/mailman/listinfo/mono-devel-list