2011-10-27 10 views
0

内部にいくつかのSTLコンテナを使用する.soファイルがあります。 問題は、.soのバージョンXのライブアンロードに興味があり、.soのバージョンYで置き換えることですが、データを失うことはありません。データが生のメモリだけだった場合、私は切り替え中にポインタを転送することができましたが、通常のSTLコンテナを使用したいと思います。それを行う方法はありますか?含まれているデータを転送できる限り、コピーは問題ではありません。 古い.soをアンロードすると、静的デストラクタもアクティブになりますか?実行時の.soファイルの更新時にSTLコンテナデータを転送する方法

答えて

2

1)X.soファイル(バージョン番号付き)にデータを保存し、X.soをアンロードし、Y.soをロードし、Y.soファイルにデータをロードさせます。
2)代わりにバージョン名を持っていて、両方を読み込み、Y.soを使ってX.soのコンテナから直接コンテナを埋める(バージョン番号を確認してください!)、X.soをアンロードします。

ABIは何らかの理由で互換性がないようにコンテナを直接渡すことをお勧めしません。コンパイルは正常ですが、実行時にクラッシュします。これにより、ABIを意図的に変更することも容易になります。

+1

[いいシリアル化ライブラリ](http://www.boost.org/libs/serialization/)が見つかりました。 – ildjarn

関連する問題