Bonjour à tous,

tout d'abord meilleurs voeux pour cette année 2012.

Je rencontre des difficultés pour implémenter un DLL dans une application windows form en c#.

La DLL contient un ensemble de fonction écrite en c/c++ dont je ne suis pas l'auteur.

Je tente d'exploiter ce DLL en c#. J'ai pour le moment réussi à exploiter une fonction dont le paramètre retour était un string simplement.

voici comment j'ai procédé:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
using System.Runtime.InteropServices;
 
[DllImport("lib.dll", CharSet = CharSet.Ansi,
        CallingConvention = CallingConvention.StdCall, EntryPoint = "version")]
        public static extern string version();
 
private void button3_Click(object sender, EventArgs e)
        {
           label1.Text = "Version: "+ version();
        }
Cela fonctionne très bien.

Maintenant je rencontre une difficulté pour déclarer une fonction dont les paramètres utiles et retour sont des structures, voire des pointeurs de structure qui contiennent des char et autre variables.

J'ai un peu cherché sur le net mais je n'ai rien trouvé correspondant vraiment à mon cas. IntPtr ?

Est ce que quelqu'un pourrait m'expliquer la procédure pour déclarer correctement ce genre de fonction en langage c# ?

merci d'avance pour votre aide.