[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 .
----------------------------
[C]
struct Foo
{
int First;
int Second;
};
struct FooList
{
int Count;
Foo List[1];
};
void GetFooList(struct * FooList fList);
I am doing it following way
[C#]
--------------------
[StructLayout(LayoutKind.Sequential)]
class Foo
{
public Int32 First;
public Int32 Second;
}
[StructLayout(LayoutKind.Sequential)]
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.
-YoGi
-------------- 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