Boost logo

Boost Users :

From: __PPS__ (i-love-spam_at_[hidden])
Date: 2005-12-05 21:25:22


is it possible to have this exported from dll:

///export.h///

#include <boost/serialization/serialization.hpp>

class session_record {
   virtual void print_on(std::ostream& os) const = 0;
   friend std::ostream & operator<<(std::ostream& os, const
session_record& sr){
     sr.print_on(os);
     return os;
   }
public:
   friend class boost::serialization::access;
   virtual ~session_record();
   template<class Archive> void serialize(Archive & ar, const unsigned
int file_version){}
   operator session_record *();
};

void serialize(session_record* derived, const char* file_name);
session_record* deserialize(const char* file_name);

///end of export.h///

and then in an application (linked to the dll that exports all from
export.h) I create derived classes from session_record and serialize or
deserialize them to/from files using the two exported free functions. I
followed exactly steps in "Runtime Casting" of the manual, but it
doesn't work. So... is it really runtime if it doesn't work this way -
it only works if all the derived classes are known & registered at the
time of compilation of the two functions. All that worked well if
everything from export.h was linked statically, but not dynamically

Am I doing something wrong with all that stuff??
thanks


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