MySQL データベースからバイナリ データを取得しています。mysqlpp::sql_blob タイプとして出てきます。
この BLOB がシリアル化された Google Protobuf であることはたまたまです。正常にアクセスできるように、シリアル化を解除する必要があります。
ParseFromString() は mysqlpp:sql_blob 型を対象としていないため、これはコンパイル エラーになります。
protobuf.ParseFromString( record.data );
ただし、キャストを強制すると、正常にコンパイルされます。
protobuf.ParseFromString( (std::string) record.data );
これは安全ですか?mysqlpp ドキュメントからのこのスニペットのために、私は特に心配しています:
ご協力ありがとうございます。