Bonsoir à tous!
Je dois utiliser une fonction C fournie ayant la signature:
En gros, cette fonction me permet d'obtenir des noms dans un tableau de char (tableau), en lui donnant le nombre de chaines que j'ai mis dans ce tableau(nbElementsTableau), et elle me dit combien de noms au total je suis censé récupérer(nbElementsARecuperer).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 long MaFonctionC(char tableau[][257], const unsigned long nbElementsTableau, unsigned long* nbElementsARecuperer);
Quand je l'appelle, elle me remplit mon tableau, sans le dépasser parce que je lui donne la 1ère dimension en 2ème argument. Libre à moi de l'appeler une 2ème fois si nbElementsARecuperer > nbElementsTableau.
Je dispose de la DLL, mais aussi du .h et du .lib.
J'utilise VS 2005 Pro.
Je voudrais pouvoir utiliser cette fonction en C#.
J'ai donc déclarer une méthode C#:
mais je ne parviens pas à relire les valeurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 [DllImport(@"MaDLL.dll",EntryPoint="#1",CallingConvention=CallingConvention.Cdecl)] public extern static Int32 MaFonctionC(out String[] nomsLiaisons, UInt32 lNbElements, out UInt32 lNbLiaisons);
J'ai même essayé d'écrire une DLL Win32 qui linke avec le .lib, et qui prend un char* pour renvoyer le tableau de String, mais rien n'y fait.
Si quelqu'un a une idée, une suggestion, une piste, je suis preneur.
Je vous remercie tous par avance d'avoir pris le temps de me lire !
Partager