나는 내 MySQL 데이터베이스에서 일부 바이너리 데이터를 가져오고있다. 그것은 mysqlpp :: sql_blob 타입으로 나온다.mysqlpp :: sql_blob을 std :: string으로 변환하는 것이 안전합니까?
이 BLOB가 직렬화 된 Google Protobuf 일뿐입니다. 난 그것을 정상적으로 액세스 할 수 있도록 그것을 역 직렬화해야합니다. SQL_BLOB 유형 :
protobuf.ParseFromString(record.data);
그러나 나는 캐스트를 강제하는 경우, 그것은 확인을 컴파일 :
protobuf.ParseFromString((std::string) record.data);
인가 ParseFromString()가 mysqlpp 의도되지 않기 때문에
이것은, 컴파일 오류를 제공합니다 이 금고? 나는 때문에 mysqlpp 문서에서이 조각의 특히 걱정 : 당신의 도움을
감사합니다!
기본적으로 protobuf를 직렬화 한 방법에 따라 다릅니다. 바이너리로 직렬화했다면 조심해! 당신은 길을 걷기위한 문제에 대해 스스로를 생각하고 있습니다. 그러나 google :: protobuf :: TextFormat :: PrintToString() 및 ParseFromString() 함수를 사용하면 괜찮습니다. – Runcible