Mapper une fonction C++ retournant une structure
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:
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:
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 :D