J'ai un tableau de tableaux que je veux passer dans une DLL. Je cours dans l'erreur "Il n'y a pas de support de marshaling pour les tableaux imbriqués."Quel est un moyen sûr de passer un tableau de tableaux à une DLL en C#?
Je peux passer un seul tableau, mais si je les empile, il échoue. J'ai besoin/je veux un moyen "sûr" de passer dans le tableau de tableaux.
private static extern int PrintStuff(string[][] someStringsInGroups, int numberOfGroups, int[] lengthSetsInGroups);
EDIT: Je suis prêt, avec assez de découragement et d'angoisse, d'accepter une solution impliquant marshaling.
Pour généraliser cette idée, vous pouvez placer votre tableau 2D dans n'importe quelle forme sérialisable - comme un tableau 1D, ou même une chaîne. –
J'ai déjà sérialisé certaines données dans un tableau int et j'ai même effectué un cast strut sur le côté C++ pour pouvoir lire ce que vous étiez en train d'assigner aux données (o [i] .value v.s. o [i] [7]). Quand une chaîne est passée dans une DLL, elle est marshalée avec un Null à la fin de celle-ci. Si je le sérialise moi-même, je devrai ajouter ceux-ci. Pas un gros problème, mais le code tel qu'il est rend les techniciens autour de moi mal à l'aise. L'autre exigence est que tout le code soit "sûr" en C#. Une autre solution serait de martialiser réellement les données manully :( – QueueHammer