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