diff -Naur field3d-1.7.2-orig/export/FieldMetadata.h field3d-1.7.2/export/FieldMetadata.h
--- field3d-1.7.2-orig/export/FieldMetadata.h	2016-06-19 07:56:00.000000000 +0300
+++ field3d-1.7.2/export/FieldMetadata.h	2016-07-12 09:35:52.678802000 +0300
@@ -81,7 +81,7 @@
 // FieldMetadata
 //----------------------------------------------------------------------------//
 
-class FieldMetadata
+class FIELD3D_API FieldMetadata
 {
  public:
 
diff -Naur field3d-1.7.2-orig/export/MIPUtil.h field3d-1.7.2/export/MIPUtil.h
--- field3d-1.7.2-orig/export/MIPUtil.h	2016-06-19 07:56:00.000000000 +0300
+++ field3d-1.7.2/export/MIPUtil.h	2016-07-12 09:43:16.800802600 +0300
@@ -91,7 +91,7 @@
 
   //--------------------------------------------------------------------------//
 
-  extern const std::string k_mipOffsetStr;
+  extern FIELD3D_API const std::string k_mipOffsetStr;
 
   //--------------------------------------------------------------------------//
 
diff -Naur field3d-1.7.2-orig/src/Field3DFile.cpp field3d-1.7.2/src/Field3DFile.cpp
--- field3d-1.7.2-orig/src/Field3DFile.cpp	2016-06-19 07:56:00.000000000 +0300
+++ field3d-1.7.2/src/Field3DFile.cpp	2016-07-12 09:18:43.049302000 +0300
@@ -1914,7 +1914,7 @@
 
 #define FIELD3D_INSTANTIATION_WRITELAYER(type)                          \
   template                                                              \
-  bool Field3DOutputFile::writeLayer<type>                              \
+  FIELD3D_API bool Field3DOutputFile::writeLayer<type>                              \
   (const std::string &, const std::string &, Field<type>::Ptr );        \
   
 FIELD3D_INSTANTIATION_WRITELAYER(float16_t);
@@ -1930,7 +1930,7 @@
 
 #define FIELD3D_INSTANTIATION_READLAYER(type)                           \
   template                                                              \
-  Field<type>::Ptr                                                      \
+  FIELD3D_API Field<type>::Ptr                                                      \
   Field3DInputFile::readLayer<type>                                     \
   (const std::string &, const std::string &) const;                     \
   
@@ -1947,7 +1947,7 @@
 
 #define FIELD3D_INSTANTIATION_READLAYERS1(type)                         \
   template                                                              \
-  Field<type>::Vec                                                      \
+  FIELD3D_API Field<type>::Vec                                                      \
   Field3DInputFile::readLayers<type>(const std::string &name) const;    \
 
 FIELD3D_INSTANTIATION_READLAYERS1(float16_t);
@@ -1961,7 +1961,7 @@
 
 #define FIELD3D_INSTANTIATION_READLAYERS2(type)                         \
   template                                                              \
-  Field<type>::Vec                                                      \
+  FIELD3D_API Field<type>::Vec                                                      \
   Field3DInputFile::readLayers<type>(const std::string &partitionName,    \
                                      const std::string &layerName) const; \
 
@@ -1976,7 +1976,7 @@
 
 #define FIELD3D_INSTANTIATION_READPROXYLAYER(type)                      \
   template                                                              \
-  EmptyField<type>::Vec                                                 \
+  FIELD3D_API EmptyField<type>::Vec                                                 \
   Field3DInputFile::readProxyLayer<type>(const std::string &partitionName, \
                                          const std::string &layerName,  \
                                          bool isVectorLayer) const      \
@@ -1992,7 +1992,7 @@
 
 #define FIELD3D_INSTANTIATION_READPROXYSCALARLAYER(type)                \
   template                                                              \
-  EmptyField<type>::Vec                                                 \
+  FIELD3D_API EmptyField<type>::Vec                                                 \
   Field3DInputFile::readProxyScalarLayers<type>                         \
   (const std::string &name) const                                       \
   
@@ -2007,7 +2007,7 @@
 
 #define FIELD3D_INSTANTIATION_READPROXYVECTORLAYER(type)                \
   template                                                              \
-  EmptyField<type>::Vec                                                 \
+  FIELD3D_API EmptyField<type>::Vec                                                 \
   Field3DInputFile::readProxyVectorLayers<type>                         \
   (const std::string &name) const                                       \
   
diff -Naur field3d-1.7.2-orig/src/FieldCache.cpp field3d-1.7.2/src/FieldCache.cpp
--- field3d-1.7.2-orig/src/FieldCache.cpp	2016-06-19 07:56:00.000000000 +0300
+++ field3d-1.7.2/src/FieldCache.cpp	2016-07-12 09:20:34.802802000 +0300
@@ -60,12 +60,12 @@
 template <typename Data_T>
 FieldCache<Data_T>* FieldCache<Data_T>::ms_singleton;
 
-template class FieldCache<half>;
-template class FieldCache<float>;
-template class FieldCache<double>;
-template class FieldCache<V3h>;
-template class FieldCache<V3f>;
-template class FieldCache<V3d>;
+template class FIELD3D_API FieldCache<half>;
+template class FIELD3D_API FieldCache<float>;
+template class FIELD3D_API FieldCache<double>;
+template class FIELD3D_API FieldCache<V3h>;
+template class FIELD3D_API FieldCache<V3f>;
+template class FIELD3D_API FieldCache<V3d>;
 
 //----------------------------------------------------------------------------//
 
diff -Naur field3d-1.7.2-orig/src/SparseFile.cpp field3d-1.7.2/src/SparseFile.cpp
--- field3d-1.7.2-orig/src/SparseFile.cpp	2016-06-19 07:56:00.000000000 +0300
+++ field3d-1.7.2/src/SparseFile.cpp	2016-07-12 09:18:59.542802000 +0300
@@ -600,7 +600,7 @@
 
 #define FIELD3D_INSTANTIATION_LOADBLOCK(type)                       \
   template                                                          \
-  void Reference<type>::loadBlock(int blockIdx);                    \
+  FIELD3D_API void Reference<type>::loadBlock(int blockIdx);                    \
   
 FIELD3D_INSTANTIATION_LOADBLOCK(float16_t);
 FIELD3D_INSTANTIATION_LOADBLOCK(float32_t);
@@ -613,7 +613,7 @@
 
 #define FIELD3D_INSTANTIATION_OPENFILE(type)                        \
   template                                                          \
-  void Reference<type>::openFile();                                 \
+  FIELD3D_API void Reference<type>::openFile();                                 \
   
 FIELD3D_INSTANTIATION_OPENFILE(float16_t);
 FIELD3D_INSTANTIATION_OPENFILE(float32_t);
