diff --git a/toonz/sources/include/tools/inputmanager.h b/toonz/sources/include/tools/inputmanager.h
index 50563d8..c025b25 100644
--- a/toonz/sources/include/tools/inputmanager.h
+++ b/toonz/sources/include/tools/inputmanager.h
@@ -50,9 +50,9 @@ typedef TSmartPointerT<TInputModifier> TInputModifierP;
 //    TInputSavePoint definition
 //*****************************************************************************************
 
-class TInputSavePoint {
+class DVAPI TInputSavePoint {
 public:
-  class Holder {
+  class DVAPI Holder {
   private:
     TInputSavePoint *m_savePoint;
     bool m_lock = false;
@@ -148,7 +148,7 @@ public:
 //    TInputModifier definition
 //*****************************************************************************************
 
-class TInputModifier: public TSmartObject {
+class DVAPI TInputModifier: public TSmartObject {
 private:
   TInputManager *m_manager;
 
@@ -255,7 +255,7 @@ public:
 //    TInputManager definition
 //*****************************************************************************************
 
-class TInputManager {
+class DVAPI TInputManager {
 public:
   class TrackHandler: public TTrackHandler {
   public:
diff --git a/toonz/sources/include/tools/inputstate.h b/toonz/sources/include/tools/inputstate.h
index 628f906..19ff14a 100644
--- a/toonz/sources/include/tools/inputstate.h
+++ b/toonz/sources/include/tools/inputstate.h
@@ -38,6 +38,11 @@
 
 typedef std::vector<TPointD> THoverList;
 
+#ifdef _WIN32
+template class DVAPI TKeyHistoryT<TKey>;
+template class DVAPI TKeyHistoryT<Qt::MouseButton>;
+#endif
+
 //===================================================================
 
 
@@ -45,7 +50,7 @@ typedef std::vector<TPointD> THoverList;
 //    TKey definition
 //*****************************************************************************************
 
-class TKey {
+class DVAPI TKey {
 public:
   Qt::Key key;
   bool generic;
@@ -86,7 +91,7 @@ public:
 //    TInputState definition
 //*****************************************************************************************
 
-class TInputState {
+class DVAPI TInputState {
 public:
   typedef qint64 DeviceId;
   typedef long long TouchId;
diff --git a/toonz/sources/include/tools/modifiers/modifierassistants.h b/toonz/sources/include/tools/modifiers/modifierassistants.h
index 9de8d00..71bb3bb 100644
--- a/toonz/sources/include/tools/modifiers/modifierassistants.h
+++ b/toonz/sources/include/tools/modifiers/modifierassistants.h
@@ -24,9 +24,9 @@
 //    TModifierAssistants definition
 //*****************************************************************************************
 
-class TModifierAssistants: public TInputModifier {
+class DVAPI TModifierAssistants: public TInputModifier {
 public:
-  class Modifier: public TTrackModifier {
+  class DVAPI Modifier: public TTrackModifier {
   public:
     bool initialized;
     TInputSavePoint::Holder savePoint;
diff --git a/toonz/sources/include/tools/modifiers/modifiersegmentation.h b/toonz/sources/include/tools/modifiers/modifiersegmentation.h
index ecdb54a..32b18c2 100644
--- a/toonz/sources/include/tools/modifiers/modifiersegmentation.h
+++ b/toonz/sources/include/tools/modifiers/modifiersegmentation.h
@@ -24,7 +24,7 @@
 //    TModifierSegmentation definition
 //*****************************************************************************************
 
-class TModifierSegmentation: public TInputModifier {
+class DVAPI TModifierSegmentation: public TInputModifier {
 public:
   const double precision;
   const double precisionSqr;
diff --git a/toonz/sources/include/tools/modifiers/modifiertangents.h b/toonz/sources/include/tools/modifiers/modifiertangents.h
index 8817a83..8ead779 100644
--- a/toonz/sources/include/tools/modifiers/modifiertangents.h
+++ b/toonz/sources/include/tools/modifiers/modifiertangents.h
@@ -24,9 +24,9 @@
 //    TModifierTangents definition
 //*****************************************************************************************
 
-class TModifierTangents: public TInputModifier {
+class DVAPI TModifierTangents: public TInputModifier {
 public:
-  class Modifier: public TTrackModifier {
+  class DVAPI Modifier: public TTrackModifier {
   public:
     explicit Modifier(TTrackHandler &handler):
       TTrackModifier(handler) { }
diff --git a/toonz/sources/include/tools/modifiers/modifiertest.h b/toonz/sources/include/tools/modifiers/modifiertest.h
index 32ab86d..fa308f5 100644
--- a/toonz/sources/include/tools/modifiers/modifiertest.h
+++ b/toonz/sources/include/tools/modifiers/modifiertest.h
@@ -24,15 +24,15 @@
 //    TModifierTest definition
 //*****************************************************************************************
 
-class TModifierTest: public TInputModifier {
+class DVAPI TModifierTest: public TInputModifier {
 public:
-  class Handler: public TTrackHandler {
+  class DVAPI Handler: public TTrackHandler {
   public:
     std::vector<double> angles;
     Handler(const TTrack &original): TTrackHandler(original) { }
   };
 
-  class Modifier: public TTrackModifier {
+  class DVAPI Modifier: public TTrackModifier {
   public:
     double angle;
     double radius;
diff --git a/toonz/sources/include/tools/track.h b/toonz/sources/include/tools/track.h
index 52efd44..5c8f6e6 100644
--- a/toonz/sources/include/tools/track.h
+++ b/toonz/sources/include/tools/track.h
@@ -63,7 +63,7 @@ class DVAPI TTrackToolHandler : public TSmartObject { };
 //    TTrackPoint definition
 //*****************************************************************************************
 
-class TTrackPoint {
+class DVAPI TTrackPoint {
 public:
   TPointD position;
   double pressure;
@@ -99,7 +99,7 @@ public:
 //    TTrackTangent definition
 //*****************************************************************************************
 
-class TTrackTangent {
+class DVAPI TTrackTangent {
 public:
   TPointD position;
   double pressure;