Как Маршал:
[C++]
#define MAX_STRING_SIZE 255
typedef char T_STRING[MAX_STRING_SIZE];
typedef struct
{
unsigned long m_ID;
T_STRING m_name;
} Result;
В С#?
В настоящее время я это делаю (но это не работает):
[C#]
[StructLayout(LayoutKind.Sequential)]
public struct Result
{
public uint m_ID;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 255)]
public char[] m_name;
}
Я попытался использовать IntPtr вместо char [] с равным нерабочим результатом. И с, и без [MarshalAs (...)].
Маршал:
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct Result
{
public uint m_ID;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 255)]
public string m_name;
}