How to convert between an IntPtr and a byte[]?

D

Dave

We are writing some code to interface to a DLL. The DLL
has a callback method that returns the address of a byte
buffer and the buffer length. I have defined the byte
pointer as an IntPtr.

How do I convert between the IntPtr and my managed byte[]
that I want to copy the data into???

-dave
 
M

Michel Gallant

Better asked in microsoft.public.dotnet.framework.interop, but:

Use the Marshal methods:

IntPtr pData = ....
byte[] buffdata = new byte[size];
Marshal.Copy(pData, buffdata, 0, size);


Note that it is often easier to proto-type with a [In, Out] byte[] data
then using an IntPtr.

- Michel Gallant
MVP Security
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top