當編組結構包含從C++到C#單個字符字段如何C#結構定義應該看起來像?Marshall結構與char
[StructLayout(LayoutKind.Sequential, Size = 1), Serializable]
public struct SomeStruct
{
[MarshalAs(UnmanagedType.I1)]
public sbyte Field;
}
或
[StructLayout(LayoutKind.Sequential, Size = 1), Serializable]
public struct SomeStruct
{
[MarshalAs(UnmanagedType.U1)]
public byte Field;
}
我無法找到關於它應該是一個符號字節或沒有一個明確的信息。 (它在C++結構定義中聲明爲'char')
UPD:它取決於C++ lib是使用GCC還是VS(默認編譯器選項)構建?如果沒有,我希望'字符'在GCC和VS上都有簽名(默認編譯選項)
該字段實際上是一個字符,還是它只是其他東西塞進方便的8位類型恰巧被稱爲char? – 2011-04-27 15:32:52
它用於存儲C++中的小整數 – 2011-04-27 15:34:36