2017-04-25 21 views
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); 
} 

を使用しています。

この方法を使用すると、フィールドnamehighを入手できますか? そうでない場合は、より良い方法を知っている人もいますか? ありがとうございます。

答えて

関連する問題