Index: code/branches/FICN/src/orxonox/objects/Ambient.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/Ambient.cc	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/Ambient.cc	(revision 729)
@@ -43,4 +43,7 @@
 namespace orxonox
 {
+    // create a template instantiations
+    //template class _OrxonoxExport ClassIdentifier<Ambient>;
+
     CreateFactory(Ambient);
 
Index: code/branches/FICN/src/orxonox/objects/Ambient.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Ambient.h	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/Ambient.h	(revision 729)
@@ -8,5 +8,5 @@
 namespace orxonox
 {
-    class Ambient : public BaseObject
+    class _OrxonoxExport Ambient : public BaseObject
     {
         public:
@@ -21,4 +21,5 @@
 
     };
+    ExportClass(Ambient, Orxonox);
 }
 
Index: code/branches/FICN/src/orxonox/objects/BaseObject.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/BaseObject.cc	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/BaseObject.cc	(revision 729)
@@ -32,5 +32,4 @@
 
 #include "tinyxml/tinyxml.h"
-#include "../core/CoreIncludes.h"
 
 #include "BaseObject.h"
Index: code/branches/FICN/src/orxonox/objects/BaseObject.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/BaseObject.h	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/BaseObject.h	(revision 729)
@@ -10,11 +10,12 @@
 
 #include "../OrxonoxPrereqs.h"
+#include "../core/CorePrereqs.h"
 
-#include "../core/OrxonoxClass.h"
+#include "../core/CoreIncludes.h"
 
 namespace orxonox
 {
     //! The BaseObject is the parent of all classes representing an instance in the game.
-    class BaseObject : virtual public OrxonoxClass
+    class _OrxonoxExport BaseObject : virtual public OrxonoxClass
     {
         public:
@@ -23,4 +24,5 @@
             virtual void loadParams(TiXmlElement* xmlElem);
     };
+    ExportClass(BaseObject, Orxonox);
 }
 
Index: code/branches/FICN/src/orxonox/objects/BillboardSet.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/BillboardSet.h	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/BillboardSet.h	(revision 729)
@@ -13,5 +13,5 @@
 namespace orxonox
 {
-    class BillboardSet
+    class _OrxonoxExport BillboardSet
     {
         public:
Index: code/branches/FICN/src/orxonox/objects/Camera.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Camera.h	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/Camera.h	(revision 729)
@@ -8,5 +8,5 @@
 namespace orxonox
 {
-    class Camera : public BaseObject
+    class _OrxonoxExport Camera : public BaseObject
     {
         public:
@@ -21,4 +21,5 @@
 
     };
+    ExportClass(Camera, Orxonox);
 }
 
Index: code/branches/FICN/src/orxonox/objects/Explosion.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Explosion.h	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/Explosion.h	(revision 729)
@@ -9,5 +9,5 @@
 namespace orxonox
 {
-    class Explosion : public WorldEntity
+    class _OrxonoxExport Explosion : public WorldEntity
     {
         public:
@@ -21,4 +21,5 @@
             ParticleInterface* particle_;
     };
+    ExportClass(Explosion, Orxonox);
 }
 
Index: code/branches/FICN/src/orxonox/objects/Fighter.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Fighter.h	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/Fighter.h	(revision 729)
@@ -12,5 +12,5 @@
 namespace orxonox
 {
-    class Fighter : public Model, public OIS::MouseListener
+    class _OrxonoxExport Fighter : public Model, public OIS::MouseListener
     {
         public:
@@ -90,4 +90,5 @@
             int emitterRate_;
     };
+    ExportClass(Fighter, Orxonox);
 }
 
Index: code/branches/FICN/src/orxonox/objects/Light.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Light.h	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/Light.h	(revision 729)
@@ -12,5 +12,5 @@
 namespace orxonox
 {
-    class Light
+    class _OrxonoxExport Light
     {
         public:
Index: code/branches/FICN/src/orxonox/objects/Mesh.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Mesh.h	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/Mesh.h	(revision 729)
@@ -10,5 +10,5 @@
 namespace orxonox
 {
-    class Mesh
+    class _OrxonoxExport Mesh
     {
         public:
Index: code/branches/FICN/src/orxonox/objects/Model.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/Model.cc	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/Model.cc	(revision 729)
@@ -69,5 +69,5 @@
 
     void Model::registerAllVariables(){
-      registerVar(&meshSrc_, meshSrc_.length()+1, network::STRING);
+      registerVar(&meshSrc_, (int)meshSrc_.length() + 1, network::STRING);
     }
 }
Index: code/branches/FICN/src/orxonox/objects/Model.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Model.h	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/Model.h	(revision 729)
@@ -12,5 +12,5 @@
 {
 
-    class Model : public WorldEntity
+    class _OrxonoxExport Model : public WorldEntity
     {
         public:
@@ -25,4 +25,5 @@
             void registerAllVariables();
     };
+    ExportClass(Model, Orxonox);
 }
 
Index: code/branches/FICN/src/orxonox/objects/NPC.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/NPC.h	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/NPC.h	(revision 729)
@@ -16,5 +16,5 @@
 namespace orxonox {
 
-  class NPC : public Model
+  class _OrxonoxExport NPC : public Model
   {
     public:
@@ -44,4 +44,5 @@
       static int const NUMELEMENTS = 9;  //number of elements
   };
+  ExportClass(NPC, Orxonox);
 
 }
Index: code/branches/FICN/src/orxonox/objects/Projectile.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Projectile.h	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/Projectile.h	(revision 729)
@@ -12,5 +12,5 @@
     class SpaceShip; // Forward declaration
 
-    class Projectile : public WorldEntity
+    class _OrxonoxExport Projectile : public WorldEntity
     {
         public:
@@ -28,4 +28,5 @@
             Timer<Projectile> destroyTimer_;
     };
+    ExportClass(Projectile, Orxonox);
 }
 
Index: code/branches/FICN/src/orxonox/objects/Skybox.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Skybox.h	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/Skybox.h	(revision 729)
@@ -10,5 +10,5 @@
 namespace orxonox
 {
-    class Skybox : public BaseObject
+    class _OrxonoxExport Skybox : public BaseObject
     {
         public:
@@ -23,4 +23,5 @@
 
     };
+    ExportClass(Skybox, Orxonox);
 }
 
Index: code/branches/FICN/src/orxonox/objects/SpaceShip.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/SpaceShip.h	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/SpaceShip.h	(revision 729)
@@ -16,5 +16,5 @@
     class ParticleInterface; // Forward declaration
 
-    class SpaceShip : public Model, public OIS::MouseListener
+    class _OrxonoxExport SpaceShip : public Model, public OIS::MouseListener
     {
         public:
@@ -43,4 +43,8 @@
             bool mousePressed(const OIS::MouseEvent &e, OIS::MouseButtonID id);
             bool mouseReleased(const OIS::MouseEvent &e, OIS::MouseButtonID id);
+
+            void doNothing() {
+            int a = 0;
+            }
 
 
@@ -125,4 +129,5 @@
             int emitterRate_;
     };
+    ExportClass(SpaceShip, Orxonox);
 }
 
Index: code/branches/FICN/src/orxonox/objects/Tickable.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Tickable.h	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/Tickable.h	(revision 729)
@@ -52,5 +52,5 @@
 
     //! The Tickable interface provides a tick(dt) function, that gets called every frame.
-    class Tickable : virtual public OrxonoxClass
+    class _OrxonoxExport Tickable : virtual public OrxonoxClass
     {
         public:
@@ -67,7 +67,8 @@
             Tickable() { RegisterRootObject(Tickable); }
     };
+    ExportAbstractClass(Tickable, Orxonox);
 
     //! The TickFrameListener calls the tick(dt) function of all Tickables every frame.
-    class TickFrameListener : public Ogre::FrameListener
+    class _OrxonoxExport TickFrameListener : public Ogre::FrameListener
     {
         private:
Index: code/branches/FICN/src/orxonox/objects/Timer.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Timer.h	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/Timer.h	(revision 729)
@@ -67,5 +67,5 @@
 {
     //! TimerBase is the parent of the Timer class.
-    class TimerBase : public OrxonoxClass
+    class _OrxonoxExport TimerBase : public OrxonoxClass
     {
         friend class TimerFrameListener;
@@ -104,4 +104,5 @@
             float time_;        //!< Internal variable, counting the time till the next function-call
     };
+    ExportAbstractClass(TimerBase, Orxonox);
 
     //! The Timer is a callback-object, calling a given function after a given time-interval.
@@ -157,4 +158,5 @@
             T* object_;
     };
+    ExportAbstractClass(Timer<BaseObject>, Orxonox);
 
     //! The TimerFrameListener manages all Timers in the game.
Index: code/branches/FICN/src/orxonox/objects/WorldEntity.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/WorldEntity.h	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/WorldEntity.h	(revision 729)
@@ -17,5 +17,5 @@
 namespace orxonox
 {
-  class WorldEntity : public BaseObject, public Tickable, public network::Synchronisable
+  class _OrxonoxExport WorldEntity : public BaseObject, public Tickable, public network::Synchronisable
   {
     public:
@@ -147,4 +147,5 @@
       bool bStatic_;
   };
+  ExportClass(WorldEntity, Orxonox);
 }
 
Index: code/branches/FICN/src/orxonox/objects/weapon_system/AmmunitionDump.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/weapon_system/AmmunitionDump.h	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/weapon_system/AmmunitionDump.h	(revision 729)
@@ -42,5 +42,5 @@
 
 namespace orxonox {
-  class AmmunitionDump : public BaseObject, public network::Synchronisable
+  class _OrxonoxExport AmmunitionDump : public BaseObject, public network::Synchronisable
   {
   public:
@@ -66,4 +66,5 @@
     int *capacity_;
   };
+  ExportClass(AmmunitionDump, Orxonox);
 }
 
Index: code/branches/FICN/src/orxonox/objects/weapon_system/BarrelGun.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/weapon_system/BarrelGun.h	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/weapon_system/BarrelGun.h	(revision 729)
@@ -38,5 +38,5 @@
 
 namespace orxonox {
-  class BarrelGun : public BaseWeapon
+  class _OrxonoxExport BarrelGun : public BaseWeapon
   {
  public:
@@ -60,4 +60,5 @@
 
   };
+  ExportClass(BarrelGun, Orxonox);
 }
 
Index: code/branches/FICN/src/orxonox/objects/weapon_system/BaseWeapon.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/weapon_system/BaseWeapon.h	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/weapon_system/BaseWeapon.h	(revision 729)
@@ -38,5 +38,5 @@
 
 namespace orxonox {
-  class BaseWeapon : public Model
+  class _OrxonoxExport BaseWeapon : public Model
   {
   public:
@@ -122,4 +122,5 @@
 
   };
+  ExportAbstractClass(BaseWeapon, Orxonox);
 }
 
Index: code/branches/FICN/src/orxonox/objects/weapon_system/Bullet.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/weapon_system/Bullet.h	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/weapon_system/Bullet.h	(revision 729)
@@ -37,5 +37,5 @@
 
 namespace orxonox {
-  class Bullet : public Model
+  class _OrxonoxExport Bullet : public Model
   {
   public:
@@ -47,4 +47,5 @@
     inline virtual void loadParams(TiXmlElement* xmlElem) { Model::loadParams(xmlElem); };
  };
+  ExportClass(Bullet, Orxonox);
 }
 
Index: code/branches/FICN/src/orxonox/objects/weapon_system/BulletManager.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/weapon_system/BulletManager.h	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/weapon_system/BulletManager.h	(revision 729)
@@ -38,10 +38,10 @@
 #include "network/Synchronisable.h"
 #include "tinyxml/tinyxml.h"
-//#include "../core/CoreIncludes.h"
+#include "../../core/CoreIncludes.h"
 #include "../BaseObject.h"
 #include "../Tickable.h"
 
 namespace orxonox {
-  class BulletManager : public BaseObject, public network::Synchronisable, public Tickable
+  class _OrxonoxExport BulletManager : public BaseObject, public network::Synchronisable, public Tickable
   {
   public:
@@ -67,4 +67,5 @@
 	  int bulletsIndex_;
   };
+  ExportClass(BulletManager, Orxonox);
 }
 
Index: code/branches/FICN/src/orxonox/objects/weapon_system/WeaponStation.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/weapon_system/WeaponStation.h	(revision 728)
+++ code/branches/FICN/src/orxonox/objects/weapon_system/WeaponStation.h	(revision 729)
@@ -36,5 +36,5 @@
 
 namespace orxonox {
-  class WeaponStation
+  class _OrxonoxExport WeaponStation
   {
   public:
