我是google协议缓冲区中的新手。现在我有一个问题如下:
我在testMessage.proto文件中创建了一条简单的消息:
option optimize_for = SPEED;
message TestMessage
{
optional string foo = 1;
optional string bar = 2;
}
然后我将此消息生成到testMessage.pb.h和testMessage.pb.cc文件并包含这些文件,还将libprotobuf库添加到我的测试项目中。 然后我写了一个简单的代码来使用这个类:
TestMessage testMsg;
testMsg.set_foo("1234"); // set ok
testMsg.set_bar("abcd"); // set ok
string output;
try {
std::cout << testMsg.foo() << std::endl; // output foo ok
testMsg.PrintDebugString(); // throw bad allocation exception here
// testMsg.SerializeToString(&output); // also throw bad allocation exception here
} catch (std::exception ex) {
std::cout << ex.what() << std::endl;
}
这段代码非常简单,但我无法理解为什么它无法正常运行。 我搜索了我的问题,但没有提到它。 每个人都可以帮我解决这个问题。