アンマネージ C++ に渡すために C# で構造体を構築しようとしていますunichar
。構造体の配列に使用する変数の正しい型と、それをどのようにマーシャリングする必要があるのか 疑問に思っていました。
私はすでにこれを理解しています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# で使用する正しい構造体は何ですか?