积极答复者
请教一下 关于 Boost 序列化库的 32位和64位平台的问题。

问题
-
我在程序中使用 Boost 的序列化库来序列化std::wstring 到 binary_archive 的时候。
在 Win32 下序列化的数据不能被 x64 平台上的程序反序列化。
同样在 x64 平台上的程序序列化的数据也不能被 Win32 平台上的程序反序列化。
但是,她们各自序列化的数据,都能够被自己反序列化。
我测试后,发现可能由于std::wstring 在序列化之前写入的字符串的长度值得原因。而这个值在不同的平台上的大小是不一样的。
_W64 unsigned int 和 unsigned __int64。
请教大家,如何才能够在让std::wstring 在不同的平台上序列化一致。
另外,我的程序要求序列化后的数据尽量小,所以选择了 binary_archive.
- 已编辑 烟雨江山 2011年9月27日 4:11