[Mono-dev] Marshal Variable length structure Array in Mono

Yogendra Thakur YogendraT at ami.com
Fri Sep 2 09:02:50 EDT 2005

Hi ,
 I want to marshal following C structure .
struct Foo
   int First;
   int Second;

struct FooList
   int Count;
   Foo List[1];

void GetFooList(struct * FooList fList);

I am doing it following way
class Foo
  public Int32 First;
  public Int32 Second;

class FooList
   public Int32 Count;
   private IntPtr list;//pointer to first
   public Foo[] Foos
      //???? HOW TO DO THIS

My problem is how to form objects from IntPtr and return as Foo[].
(If i directly use Marshal.PtrToStruct(list,typeof(Foo)); it throws object reference not set to object while access Foo.First.)

I googled about it and I found a solution which uses kernel32.dll and uses GlobalFree, GlobalAlloc API's.

I want to run this on Mono. I am new to Interop Please help.

Thank in Advance.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20050902/fa155ea5/attachment.html 

More information about the Mono-devel-list mailing list