[Mono-list] copying pointer data without unsafe code ?

Glenn Pierce glennpierce@connectfree.co.uk
Thu, 30 Sep 2004 18:37:46 +0100


I am trying to wrap a c image library and having trouble getting the
data using P/Invoke.

The client C code would be:

void* buf;
buf = malloc (bufsize);
retval = GetImageData (buf, bufsize);

What I need is to get the image data into a managed array. 

Currently I am using unsafe code to get the data into a void pointer,

private unsafe extern static uint IcsGetData (void* dest, uint n);

I tried experimenting with [Out] System.Array as I don't know the necessary image type
until runtime and so I don't know the type of array. However, I had with no luck with this method.

After I have the pointer to the image data I then copy the data into a managed array
by using code to allocate unmanaged memory as seen http://www.asprelated.com/csharp/sharp-18_8.aspx.

Is there an easier way I can get the image data into a managed array without using unsafe code ?

Thanks for any help.