我有一个结构
[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
};
我正在使用长度前缀为Fixed32的c#proto-buf将此结构的多个实例序列化到一个文件中。代码如下,(tenprintTemplateStruct是struct im writing)
ProtoBuf.Serializer.SerializeWithLengthPrefix(stream, tenprintTemplateStruct, ProtoBuf.PrefixStyle.Fixed32, 0);
我知道它可以使用c ++反序列化。我尝试了一些解决方案,但还没有成功。
以前有人这样做过吗?
答案 0 :(得分:3)
在C ++方面,您需要执行4个步骤:
protoc
工具生成C ++代码;您可以手动编写.proto架构,也可以使用string proto = Serializer.GetProto<TenprintTemplateStructure>();
(来自.NET代码)作为起点Fixed32
被记录为little-endian,所以:那样做