Ticket #3934: b.cpp

File b.cpp, 1.3 KB (added by cris@…, 13 years ago)

Code for DLL 1

Line 
1#include <iostream>
2
3using namespace std;
4
5#include <boost/archive/text_iarchive.hpp>
6#include <boost/archive/text_oarchive.hpp>
7#include <boost/serialization/export.hpp>
8
9class __declspec(dllexport) A {
10
11public:
12
13 A(std::string a) { m_name = a; }
14
15 virtual ~A() {};
16
17 virtual void anA() = 0;
18
19 std::string m_name;
20
21 template<class Archive> void serialize(Archive &ar, const unsigned int version)
22 {
23 ar & m_name;
24 }
25};
26
27class __declspec(dllexport) B :public A {
28
29public:
30
31 B() : A("A Derived") {};
32
33 virtual ~B() {};
34
35 virtual void anA() { cout << "An A" << endl; }
36
37 virtual void aB() = 0;
38
39 template<class Archive> void serialize(Archive &ar, const unsigned int version)
40 {
41 ar & boost::serialization::base_object<A>(*this);
42 }
43};
44
45
46class __declspec(dllexport) C : public B {
47
48public:
49
50 C() {};
51
52 C(std::string a): B() { m_string = a; cout << "Done C" << endl; };
53
54 virtual ~C() {};
55
56 virtual void aB() { cout << "A B" << endl; }
57
58 std::string m_string;
59
60 template<class Archive> void serialize(Archive &ar, const unsigned int version)
61 {
62 ar & boost::serialization::base_object<B>(*this);
63 ar & m_string;
64 }
65};
66BOOST_CLASS_EXPORT(C);
67
68
69static C bla("Mr C");