C++에서 C#으로 단일 char 필드를 포함하는 구조체를 마샬링 할 때 C# 구조체 정의가 어떻게 표시되어야합니까?마샬 struct with 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++ struct 정의에서 'char'으로 선언되었습니다.)
UPD : C++ lib가 GCC 또는 VS (기본 컴파일러 옵션)로 빌드되었는지 여부에 달려 있습니까? 그렇지 않다면 GCC와 VS (기본 컴파일러 옵션) 모두에서 'char'이 서명 되었으면 좋겠습니까
필드가 실제로 문자입니까, 아니면 그냥 char라고 불리는 편리한 8 비트 유형으로 채워져 있습니까? –
C++에서 작은 int를 저장하는 데 사용되었습니다 –