Passage d'un tableau de string vers du code non managé (DLL)
Passage d'un tableau de string vers du code non managé (DLL) - C#/.NET managed - Programmation
Sujets relatifs:
Leave a Replay
Make sure you enter the(*)required information where indicate.HTML code is not allowed
Marsh Posté le 11-11-2004 à 20:57:14
Salut tlm.
Dans mon code c#, je obligé de faire appel a une fonction contenue dans une DLL. Cette fonction doit retourner un tableau de chaines de caracteres, dont le nombre est à priori inconnu, de meme que la taille des chaines retournées.
J'ai de gros problèmes à faire passer un tableau de string c# du code managé au code non managé, et vice-versa.
Le bout de code suivant fonctionne, mais n'est pas beau et pas pratique du tout.
L'entete de la fonction est le suivant :
Comme vous pouvez le constater, la fonction managée [i]GetFileNames créé un tableau de strings (déjà initialisées et contenant une chaine de caractère de taille maximale autorisée), l'envoie à la fonction Win32 de la DLL, avec en argument le nombre de cases dans le tableau et la taille maximale autortisée pour les chaines. Le retour me donne le nombre de chaines inscrites dans le tableau.
L'inconvénient, c'est qu'au retour de la fonction, je doit vider a la main les chaines de caractères présentes mais inutiles (index > index retourné). J'ai un tableau a moitié vide, pas pratique a utiliser.
Ma question est la suivante : existe-t-il une autre solution pour récupérer un tableau de chaines de caractères à partir d'un code non managé ? (je précise que le tableau ner contient des données interessantes qu'au retour de la fonction et non à l'appel)
Edit : titre pourri
Message édité par oliv5 le 11-11-2004 à 21:15:25