Salut,
Je désire utiliser une dll native (en l'occurence cellcore.dll, mais peu importe) et j'ai un problème avec une structure en C que je veux déclarer en C# : j'ai beau respecter ce qui est écrit dans MSDN, ou d'autres sources, j'ai toujours l'erreur
The type or namespace name 'MarshalAs' could not be found (are you missing a using directive or an assembly reference?)
Voici la structure en C :
typedef struct simphonebookentry_tag {
DWORD cbSize;
DWORD dwParams;
TCHAR lpszAddress[MAX_LENGTH_ADDRESS];
DWORD dwAddressType;
DWORD dwNumPlan;
TCHAR lpszText[MAX_LENGTH_PHONEBOOKENTRYTEXT];
} SIMPHONEBOOKENTRY, *LPSIMPHONEBOOKENTRY;
et voici ma transcription en C# :
using System.Runtime.InteropServices;
...
[StructLayout(LayoutKind.Sequential)]
public struct SimPhonebookEntry {
public uint cbSize;
public uint dwParam;
[MarshalAs(UnmanagedType.ByValArray, SizeConst=256)]
public char[] lpszAddress;
public uint dwAddressType;
public uint dwNumPlan;
[MarshalAs(UnmanagedType.ByValArray, SizeConst=256)]
public char[] lpszText;
}
Est-ce que quelqu'un peut me dire pourquoi j'ai cette erreur alors que dans la littérature, il est écrit que la classe MarshalAsAttribute fait partie de System.Runtime.InteropServices