Hi,
I've been using the boost serialization for quite a few
projects and it works realy well in many different situations. But today I'm
facing a problem, I find very difficult to solve. I serialize objects in a XML
archive for a project working on linux and windows using boost 1.38. And oddly
my files are not compatible between the two plateforms. When I try to
deserialize an object saved on a different plateform, the application crashes despite
the fact that I catch possible exceptions. When I compare the two files, it
seems that I have a difference of class_id
Here is a sample of what I have on linux:
<m_scene3D class_id="4"
tracking_level="0" version="0">
<pNode
class_id="6" class_name="Group"
tracking_level="1" version="0" object_id="_1">
<Node
class_id="5" tracking_level="1" version="0"
object_id="_2"></Node>
<noeuds
class_id="7" tracking_level="0" version="0">
<count>0</count>
<item_version>0</item_version>
</noeuds>
</pNode>
…
</m_scene3D>
And the same object on windows:
<m_scene3D class_id="4"
tracking_level="0" version="0">
<pNode
class_id="6" class_name="Group"
tracking_level="1" version="0" object_id="_1">
<Node
class_id="7" tracking_level="1" version="0"
object_id="_2"></Node>
<noeuds
class_id="8" tracking_level="0" version="0">
<count>0</count>
<item_version>0</item_version>
</noeuds>
</pNode>
…
</m_scene3D>
In my file on windows, I don't have any object of a
class_id="5", weird…
Does any one know any reason for this behaviour ?
Any idea greatly appreciated.
Jean-Charles Quillet