Je rencontre quelques problèmes pour définir une façon de représenter une structure qui contient un pointeur vers un tableau de courts-circuits dans mon code managé. Le struct ressemble à ceci:Marshaling un pointeur vers un tableau de types (C++ managé> C++ non géré)
typedef struct
{
short size;
unsigned short** shortValues;
} UnmanagedStruct;
mémoire pour « shortValues
» est attribué à l'intérieur du code non managé - donc, même si ce domaine est tout simplement un pointeur sur un tableau de valeurs courtes, a été ajouté un niveau d'indirection supplémentaire pour que La mémoire allouée est également vue par l'appelant (code managé). Le champ 'size
' représente le nombre d'éléments dans le tableau. Comment est-ce que je représente ceci dans le code managé?
Je pensais que je le passerais juste dans un IntPtr
, alors je ne pouvais pas comprendre comment accéder aux valeurs une fois l'appel non géré revient.
Ce code me semble tout à fait exact. Merci dtb! Pendant que j'ai votre attention, puis-je poser une autre question? Je l'ai posté dans un autre fil: http://stackoverflow.com/questions/1323797/marshaling-pointer-to-an-array-of-strings – Dilip
BTW: il est préférable de mettre à jour votre question que de poster une réponse à votre question avec de nouveaux détails. Aussi, si une réponse résout votre problème, n'oubliez pas de l'accepter! :) – dtb
@dtb: Je dois être aveugle mais comment accepter une réponse? – Dilip