4

ブースト ライブラリを使用して、64 ビット マシンでシリアル化し、32 ビット マシンで逆シリアル化しようとしています。しかし、うまくいかないようです。(私は1.57.0を使用しています)。

次のコードを実行すると

boost::asio::streambuf buf;
std::ostream os(&buf);
boost::archive::binary_oarchive oa(os);
printf("Buffer size %d\n",(int)buf.size());

32 ビット マシンの出力は37で、64 ビット マシンの出力は41です。

私が使用できる他の良いシリアライズライブラリはありますか? シリアルはいかがですか?

ライブラリが圧縮 (zlib/gzip など) も行うことができれば素晴らしいことです。

4

3 に答える 3

5

それは機能します。互換性のあるアーカイブを作成しないだけです。必要な場合は、EOS が作成したアーカイブの実装を確認する必要があります。

Boost の binary_[io]archive をドロップインで置き換えることができます。他に何も変更する必要はありません。


PS。もちろん、アーキテクチャに依存しない方法で型を詳しく説明してください。だからuint32_t、 ``size_t` ではありません

于 2015-06-03T22:08:46.760 に答える