Bonjour,

Je cherche depuis un petit moment comment appeler une fonction d'une dll C++ en CSharp sans succés.


Voici la partie C++

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const int TAILLE = 20;

struct MonTypeStruct
{
  WCHAR * chaine;
  BYTE array[TAILLE];
  int i;
}

// Déclaration d'une variable static de type MonTypeStruct
static MonTypeStruct staticStruct;

MonTypeStruct GetStruct()
{
  return staticStruct; // On retourne la variable global
}
Voici maintenant la partie C# qui me pose problème. Voici ce que je comptais faire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const Int32 TAILLE = 20;

[StructLayout(LayoutKind.Sequential)]
public struct MonTypeStruct
{
  [MarshalAs(UnmanagedType.LPWStr)]
  public String chaine;
  [MarshalAs(UnmanagedType.LPArray, SizeConst = TAILLE)]
  public Byte[] array;
  public Int32 i;
}

[DllImport("maDllCpp.dll")]
static extern MonTypeStruct GetStruct();

//Appel de la methode dans une fonction C#
MonTypeStruct mts = GetStruct();
Lors de l'execution du code, j'ai une exception du type NotSupportedException, mais je ne sais pas quoi faire.

Pouvez-vous m'aider ?

Par avance Merci