[Mono-dev] Marshalling a struct inside a struct
Dudemullet
elpaip at gmail.com
Thu Dec 11 23:33:33 EST 2008
hello,
I have a struct that looks like this
++ Unmanaged struct ++
typedef struct {
GList *tracks;
GList *playlists;
gchar *filename;
Itdb_Device *device;
guint32 version;
guint64 id;
guint64 usertype;
gpointer userdata;
ItdbUserDataDuplicateFunc userdata_duplicate;
ItdbUserDataDestroyFunc userdata_destroy;
} Itdb_iTunesDB;
++++++++++++++++++++
and I have a function inside a dll that is gonna populate it and Ive tried
various ways to declare the return type either by IntPtr and later using
Marshal.PtrtoStructure but when I try and use this function I get the error
"The structure must not be a value class".
this is how I tried to implement my function
++ function ++
[DllImport("libgpod.dll")]
static extern itdb itdb_parse(string mp, IntPtr ge);
itdb database = itdb_parse("G:", IntPtr.Zero);
++++++++++++++++++++++++++++++++
In the source I can see that "itdb_parse" returns a Itdb_iTunesDB pointer so
maybe I could use classes but what about the Itdb_Device struct that inside
this struct ? Also if I need to implement the class, what should I do Any
suggestions ?
Thank you
--
View this message in context: http://www.nabble.com/Marshalling-a-struct-inside-a-struct-tp20969792p20969792.html
Sent from the Mono - Dev mailing list archive at Nabble.com.
More information about the Mono-devel-list
mailing list