2
最近、私はprotobufを使用しています。問題が発生しました。 私はprotobufメッセージですべてのフィールドを取得したいと私は方法を知っている、field_count()
を使用してメッセージのフィールドカウントを取得し、すべてのフィールドを取得するために、関数FindFieldByNumber()
を使用してください。メッセージのフィールドの数は、例えば、不連続である場合でも、:そして、protobufメッセージのすべてのフィールドを取得する方法は?
message MyPb
{
uint32 id =1;
int32 score =2;
string name =5;
uint32 high =6;
}
、MyPbのフィールド数は4である、と私はどこのカウント= 4
for(int i=1; i<=count; ++i)
{
descriptor->FindFieldByNumber(i);
}
を使用しています。
この方法を使用すると、フィールドname
とhigh
を入手できますか? そうでない場合は、より良い方法を知っている人もいますか? ありがとうございます。
ありがとう、あなたの答えは私の問題を解決しました。 – ChengZhang