ByteSize () с в буфере протокола Google

Теперь я разрабатываю тестовый код с использованием GPB в qnx следующим образом:

Offer_event Offer;
string a = "127.0.0.7";

Offer.set_ipaddress(a);
Offer.set_port(9000);

BufSize = Offer.ByteSize();

Length_message = BufSize + Message_Header_Size;
Message->PayloadLength_of_Payload = BufSize;
PayloadBuffer = new char[BufSize];
Offer.SerializeToArray(PayloadBuffer, BufSize);

в этом случае я встретил некоторые ошибки. но я не могу этого понять.

эта ошибка заключается в следующем:

#0  std::string::size (this=0xcd21c0)
at /home/builder/hudson/650-gcc-4.4/svn/linux-x86-o-ntoarmeabi/arm-unknown-nto-qnx6.5.0eabi/pic/libstdc++-v3/include/bits/basic_string.h:624
624     /home/builder/hudson/650-gcc-4.4/svn/linux-x86-o-ntoarmeabi/arm-unknown-
nto-qnx6.5.0eabi/pic/libstdc++-v3/include/bits/basic_string.h: No such file or d
irectory.
in /home/builder/hudson/650-gcc-4.4/svn/linux-x86-o-ntoarmeabi/arm-unkno
wn-nto-qnx6.5.0eabi/pic/libstdc++-v3/include/bits/basic_string.h
(gdb) bt
#0  std::string::size (this=0xcd21c0)
at /home/builder/hudson/650-gcc-4.4/svn/linux-x86-o-ntoarmeabi/arm-unknown-n
to-qnx6.5.0eabi/pic/libstdc++-v3/include/bits/basic_string.h:624
#1  0x0067d6b0 in google::protobuf::internal::WireFormatLite::StringSize ()
#2  0x0063ecd0 in Offer_event::ByteSize ()
#3  0x00404f18 in AnalysisCmdC_Actor::TestGPB ()

from C:/QNX650/target/qnx6/armle-v7/lib/libc.so.3
#11 0x0004201a in ?? ()
Cannot access memory at address 0x0
Current language:  auto; currently c++
(gdb)

Я не знаю, почему у ByteSize есть проблема.
Если я удаляю строковую часть, она работает хорошо.
Я думаю, что использование строки является проблемой.

в чем проблема?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]