Я хочу упаковать строку длиной более 32 символов, но упаковщик возвращает каждый раз «да».
Когда я использую строку, которая содержит менее 32 символов, все работает отлично! Но большая строка возвращает только «да»
мой код выглядит следующим образом:
msgpack::sbuffer sbuffer;
msgpack::packer<msgpack::sbuffer> packer(&sbuffer);
packer.pack(string("hello this is a string larger than 32 bytes"));
также попробовал это:
packer.pack_raw(43);
packer.pack_raw_body("hello this is a string larger than 32 bytes", 43);
В обоих случаях возвращаем:
'da'
любая идея?
Спасибо за помощь
редактировать: я исправил проблему … я переустановил его с помощью cmake, и теперь он работает. Прежде чем я сделал это с ./configure
Я попробовал следующий код и смог получить строку:
// main.cpp
#include <iostream>
#include <string>
#include <vector>
#include <msgpack.hpp>
int main(int argc, char const *argv[])
{
msgpack::sbuffer sbuf;
msgpack::packer<msgpack::sbuffer> packer(&sbuf);
packer.pack_raw(43);
packer.pack_raw_body("hello this is a string larger than 32 bytes", 43);
msgpack::unpacked msg;
msgpack::unpack(&msg, sbuf.data(), sbuf.size());
msgpack::object obj = msg.get();
std::cout << obj << std::endl;
return 0;
}
Составлено с g++ main.cpp -o main -lmsgpack