問題タブ [messagepack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
211 参照

c++ - MessagePack Perl から C++ への逆シリアル化

私はmessagepackを初めて使用し、perlでハッシュを取得し、messagepackを使用してシリアル化し、ファイルに書き込み、それをC ++コードに渡し、ファイルを読み取ってマップに逆シリアル化しようとしています。

ファイルを生成するための私のperlコードは次のとおりです(注-ファイルを読み込んでperlで正しく逆シリアル化できることを確認するために余分な部分を追加しましたが、実際にはこれを行う必要はありません):

次に、逆シリアル化する私の C++ コードは次のとおりです。

これにより、 で 2 要素マップが生成さoutput_mapれますが、ガベージ値しか含まれていません - 私のプログラムは次のようにクラッシュしoutput_map.at()ます

この特定のユースケースの例を見つけることができず、何が問題なのかを確認するのに苦労しました.これはシリアライゼーションの終わりの問題ですか、それともデシリアライゼーションの終わりの問題ですか?

編集:私の間違いを指摘してくれた@SinanÜnürに感謝します。質問で更新しました。これは、ハッシュにガベージ値が入力されているという事実を変更しないため、検索対象のキーに関係なく同じ例外がスローされます。