-template class MEDCoupling::MemArray<mcIdType>;
-template class MEDCoupling::MemArray<double>;
-template class MEDCoupling::DataArrayTemplate<mcIdType>;
-template class MEDCoupling::DataArrayTemplate<double>;
-template class MEDCoupling::DataArrayTemplateClassic<mcIdType>;
-template class MEDCoupling::DataArrayTemplateClassic<double>;
-template class MEDCoupling::DataArrayTemplateFP<double>;
-template class MEDCoupling::DataArrayIterator<double>;
-template class MEDCoupling::DataArrayIterator<mcIdType>;
-template class MEDCoupling::DataArrayDiscrete<Int32>;
-template class MEDCoupling::DataArrayDiscreteSigned<Int32>;
-template class MEDCoupling::DataArrayDiscrete<Int64>;
-template class MEDCoupling::DataArrayDiscreteSigned<Int64>;
-template class MEDCoupling::DataArrayTuple<mcIdType>;
-template class MEDCoupling::DataArrayTuple<double>;
-template class MEDCoupling::DataArrayTuple<float>;
-
-template<mcIdType SPACEDIM>
+template class MEDCOUPLING_EXPORT MEDCoupling::MemArray<mcIdType>;
+template class MEDCOUPLING_EXPORT MEDCoupling::MemArray<double>;
+template class MEDCOUPLING_EXPORT MEDCoupling::DataArrayTemplate<mcIdType>;
+template class MEDCOUPLING_EXPORT MEDCoupling::DataArrayTemplate<double>;
+template class MEDCOUPLING_EXPORT MEDCoupling::DataArrayTemplateClassic<Int32>;
+template class MEDCOUPLING_EXPORT MEDCoupling::DataArrayTemplateClassic<Int64>;
+template class MEDCOUPLING_EXPORT MEDCoupling::DataArrayTemplateClassic<double>;
+template class MEDCOUPLING_EXPORT MEDCoupling::DataArrayTemplateFP<double>;
+template class MEDCOUPLING_EXPORT MEDCoupling::DataArrayIterator<double>;
+template class MEDCOUPLING_EXPORT MEDCoupling::DataArrayIterator<mcIdType>;
+template class MEDCOUPLING_EXPORT MEDCoupling::DataArrayDiscrete<Int32>;
+template class MEDCOUPLING_EXPORT MEDCoupling::DataArrayDiscreteSigned<Int32>;
+template class MEDCOUPLING_EXPORT MEDCoupling::DataArrayDiscrete<Int64>;
+template class MEDCOUPLING_EXPORT MEDCoupling::DataArrayDiscreteSigned<Int64>;
+template class MEDCOUPLING_EXPORT MEDCoupling::DataArrayTuple<mcIdType>;
+template class MEDCOUPLING_EXPORT MEDCoupling::DataArrayTuple<double>;
+template class MEDCOUPLING_EXPORT MEDCoupling::DataArrayTuple<float>;
+
+void MEDCoupling::DACheckNbOfTuplesAndComp(const DataArray *da, mcIdType nbOfTuples, std::size_t nbOfCompo, const std::string& msg)
+{
+ if(!da)
+ throw INTERP_KERNEL::Exception("DACheckNbOfTuplesAndComp : null input object !");
+ da->checkNbOfTuplesAndComp(nbOfTuples,nbOfCompo,msg);
+}
+
+template<int SPACEDIM>