Boost logo

Boost Users :

Subject: Re: [Boost-users] Serialization problem with DLL & EXE
From: Robert Ramey (ramey_at_[hidden])
Date: 2009-04-28 16:16:54


With the VC debugger set break points in the serializaiton libray at
at boost/serialization/singleton.hpp constructors.

This will break before main is called one all statically constructed
objects.
Among these object should be those corresponding to exported datatypes.

This might help to see why the code that isn't interests us isn't getting
instantiated.

Using the no rtti version is interesting, but I don't think it will help
narrowing down this problem.

The way the system is "supposed to work" is:

in the exe, the BOOST_CLASS_EXPORT(DbObject) should
instantiate a static object which is constructed prior to invoking main.
You should be able verify that this object is included in the compile
and link image and you should be able to trap upon it's construction.
If the object is not explicitly referred to, we have to engage in
some C++/MSVC gymnastys in order to avoid it being dropped
by the compiler and/or linker.

Keep us posted on your progress.

Robert Ramey

"Andrei Popa" <andrei4popa_at_[hidden]> wrote in message
news:COL101-W323EC2DCF1107BC8BED6AEE06E0_at_phx.gbl...
Hi Robert,

With a class derived from DbObject and defined/implemented in my EXE (that
use the DLL) I got archive_exception::unregistered_class.I tried to register
it or to export it, but I could not make it work.*** So you put
BOOST_CLASS_EXPORT(DbObject) in to a *.cpp filewhich is compiled as part of
the exe?Yes, I do.Any Ideas?I use Version 1.38 of the library &
VC8(2005).When I use BOOST_CLASS_TYPE_INFO(as in test_no_rtti.cpp sample )
for my EXE resident class, the ::get_key is never called. // get the eti
record for the exported type "polymorphic_derived2"
boost::serialization::extended_type_info const * const d2_eti =
boost::serialization::extended_type_info::find(
"polymorphic_derived2" );works too before I start to serialize the
collection.*** is this an attempt the issure raised above or is this a
separate question.No separate question at all, this is the way I tried
figure out if my class is really (and correctly) registered.Is this a
correct way to test? How can I debug what's wrong?ThanksAndrei.

Get news, entertainment and everything you care about at Live.com. Check it
out!

_______________________________________________
Boost-users mailing list
Boost-users_at_[hidden]
http://lists.boost.org/mailman/listinfo.cgi/boost-users


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