Je p-invoquant dans une DLL qui renvoie une liste void ** de pointeurs de structure, tous du même type. From what I've read, afin de lancer et d'extraire ma structure de cette liste, la structure doit être considérée comme non gérée. Les principaux coupables de la struct j'essaie de rassembler plus sont les suivantes deux champs du côté C:Marshaling une structure tout en le gardant "non géré"
char name[1024];
int crop[4];
La plupart des guides suggèrent d'utiliser la chaîne ou int [] sur la struct correspondante du côté géré, mais avoir ces champs en fait une structure gérée et donc incapable d'extraire de la liste vide **.
Quelle est une autre façon de rassembler ces champs qui me donne une structure non managée?
Cela est utile pour rendre la structure un peu plus conviviale, même si j'ai toujours besoin de code non sécurisé pour accéder à toutes les structures de la liste. – RandomEngy
Cela ne devrait pas être nécessaire, il devrait être couvert par Marshal.ReadIntPtr() s'il s'agit d'un vide **. Il n'y a pas assez de détails dans votre message pour dire comment la liste a été implémentée, liste liée vs tableau de pointeurs. –
Ahh, c'est vrai. – RandomEngy