У меня есть структура
[ProtoContract]
public struct TenprintTemplateStructure
{
[ProtoMember(1)]
public byte[] FeatureTenprint { get; set; } //Tenpritn NTemplate's NBuffer
[ProtoMember(2)]
public int TemplateID { get; set; } //Template ID
[ProtoMember(3)]
public long TemplateSize { get; set; } //Template Size
[ProtoMember(4)]
public string PersonID { get; set; } //Person ID
[ProtoMember(5)]
public int IsActive { get; set; } // Person's Status
};
и я сериализовал несколько экземпляров этой структуры в файл, используя c # proto-buf с префиксом длины Fixed32. код ниже, (tenprintTemplateStruct — это структура, которую я пишу)
ProtoBuf.Serializer.SerializeWithLengthPrefix(stream, tenprintTemplateStruct, ProtoBuf.PrefixStyle.Fixed32, 0);
Я знаю, что это может быть десериализуемо, используя c ++. Я попытался какое-то решение, но пока не удалось.
кто-нибудь делал это раньше?
На стороне C ++ у вас есть 4 шага:
protoc
инструмент; Вы можете написать схему .proto вручную или использовать string proto = Serializer.GetProto<TenprintTemplateStructure>();
(из вашего кода .NET) в качестве отправной точкиFixed32
задокументировано как little-endian, так что: сделать этоДругих решений пока нет …