|
Boost Users : |
Subject: [Boost-users] [Serialization] assert fail and unregistered class
From: Jari (jaristr_at_[hidden])
Date: 2011-05-19 19:01:00
Hi
I get assert fail and "unregistered class - derived class not
registered or exported" when serializing.
I have many classes being saved already in the code but i ran to a
problem saving certain std::list with derived classes. (I also have
similar classes and list being serialized before)
i think its the same issue as in here:
http://boost.2283326.n4.nabble.com/serialization-polymorphic-archives-runtime-failure-was-polymorphic-archives-generates-linker-errors-td2636844.html
i have boost version 1.46.1
and visual studio express 2010
heres the call stack:
msvcr100d.dll!_wassert(const wchar_t * expr, const wchar_t *
filename, unsigned int lineno) Line 325 C
gamevc10dbg.exe!boost::archive::detail::basic_serializer_map::find(const
boost::serialization::extended_type_info & eti) Line 102 + 0x16
bytes C++
gamevc10dbg.exe!boost::archive::detail::archive_serializer_map<boost::archive::binary_oarchive>::find(const
boost::serialization::extended_type_info & eti) Line 67 C++
gamevc10dbg.exe!boost::archive::detail::save_pointer_type<boost::archive::binary_oarchive>::polymorphic::save<BasePlayer>(boost::archive::binary_oarchive
& ar, BasePlayer & t) Line 435 + 0xe bytes C++
gamevc10dbg.exe!boost::archive::detail::save_pointer_type<boost::archive::binary_oarchive>::save<BasePlayer>(boost::archive::binary_oarchive
& ar, const BasePlayer & t) Line 460 + 0xd bytes C++
gamevc10dbg.exe!boost::archive::detail::save_pointer_type<boost::archive::binary_oarchive>::invoke<BasePlayer
*>(boost::archive::binary_oarchive & ar, BasePlayer * const t) Line
473 + 0xd bytes C++
gamevc10dbg.exe!boost::archive::save<boost::archive::binary_oarchive,BasePlayer
* const>(boost::archive::binary_oarchive & ar, BasePlayer * const & t)
Line 525 + 0xf bytes C++
gamevc10dbg.exe!boost::archive::detail::common_oarchive<boost::archive::binary_oarchive>::save_override<BasePlayer
* const>(BasePlayer * const & t, int __formal) Line 69 + 0x15
bytes C++
gamevc10dbg.exe!boost::archive::basic_binary_oarchive<boost::archive::binary_oarchive>::save_override<BasePlayer
*>(BasePlayer * const & t, int version) Line 76 C++
gamevc10dbg.exe!boost::archive::binary_oarchive_impl<boost::archive::binary_oarchive,char,std::char_traits<char>
>::save_override<BasePlayer *>(BasePlayer * & t, int __formal) Line
52 C++
gamevc10dbg.exe!boost::archive::detail::interface_oarchive<boost::archive::binary_oarchive>::operator<<<BasePlayer
*>(BasePlayer * & t) Line 64 C++
gamevc10dbg.exe!saveGame() Line 63 + 0x12 bytes C++
gamevc10dbg.exe!SDL_main(int argc, char * * argv) Line 1517 +
0x5 bytes C++
gamevc10dbg.exe!_main() + 0xfd bytes C
gamevc10dbg.exe!_WinMain_at_16() + 0x1cd bytes C
gamevc10dbg.exe!__tmainCRTStartup() Line 547 + 0x2c bytes C
gamevc10dbg.exe!WinMainCRTStartup() Line 371 C
kernel32.dll!75451194()
[Frames below may be incorrect and/or missing, no symbols loaded for
kernel32.dll]
ntdll.dll!76fbb429()
ntdll.dll!76fbb3fc()
gamevc10dbg.exe!__CT??_R0?AVbad_cast_at_std@@@8??0bad_cast_at_std@@QAE_at_ABV01@@Z12()
+ 0xd2ce bytes C++
003426e2()
does any one know whats wrong?
I have no idea how to solve this, i have tried everything!
i should have all BOOST_CLASS_EXPORT_GUID in place.
thx
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net