Я пытаюсь построить структуру на C#, чтобы перейти к неуправляемому C++, мне было интересно, какой правильный тип переменной использовать для массива в моей структуре и что он должен быть составлен как.Как использовать unichar массив в C# struct с DLLImport неуправляемого C
Я уже понял это для unsigned char array
C/C++
typedef struct _foo {
void *fileId;
unsigned char fileName[15];
} foo;
C#
[StructLayout(LayoutKind.Sequential)]
public struct foo
{
public IntPtr fileId;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 15)]
public string fileName;
}
Итак, если я следующий в C++
typedef struct _foo {
void *fileId;
unichar fileName[15]; // UTF-16LE
} foo;
Какая была бы правильная структура для использования в C#?