
I have a test program (boost::test) for a set of my application classes. When run on darwin (10.4.6, gcc4.01) the tests work correctly - that is, I can serialize the structure to an XML archive and read it back (actually, all 3 archive types). When I run the same test on windows (XP sp2, vc8), the read back of the XML archive fails very early because it apparently can't find an appropriate class to instantiate. When I look at the XML output, the windows version has a class name at the point where it fails, while the darwin version does not (there are NO class names written in the darwin archive). The code between darwin and windows is essentially the same - there aren't any differences in MY code in the serialization code. Several points: a) The topmost level is a pointer (plain) to an abstract class - the concrete subclass being serialized is very simple at this point. b) The specific class that's failing is from an STL map with pointers to an abstract base class. 1) That particular failing class is successfully tested prior to where it fails in the same test application (output to all archive types and read-back). 2) although it's using a different archive to test, initialization of all archives is identical (register_type and register_void_pointer called as appropriate) c) There is one other class that also gets serialized with a class name in addition to it's ID (I presume this means that something's up with class registration?) Ok - any suggestions on how to tackle this? I can't find anything wrong in the registration (i've walked through my part of the registration code in the debugger). I'm using boost 1.33.1 Thanks Hugh Hoover Enumclaw Software