Computer Assisted Medical Intervention Tool Kit  version 5.1
 
Loading...
Searching...
No Matches
MMLAPI.h
Go to the documentation of this file.
1/*****************************************************************************
2 * $CAMITK_LICENCE_BEGIN$
3 *
4 * CamiTK - Computer Assisted Medical Intervention ToolKit
5 * (c) 2001-2023 Univ. Grenoble Alpes, CNRS, Grenoble INP, TIMC, 38000 Grenoble, France
6 *
7 * Visit http://camitk.imag.fr for more information
8 *
9 * This file is part of CamiTK.
10 *
11 * CamiTK is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * CamiTK is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU Lesser General Public License version 3 for more details.
19 *
20 * You should have received a copy of the GNU Lesser General Public License
21 * version 3 along with CamiTK. If not, see <http://www.gnu.org/licenses/>.
22 *
23 * $CAMITK_LICENCE_END$
24 ****************************************************************************/
25
26// The following ifdef block is the standard way of creating macros which make exporting
27// from a DLL simpler. All files within this DLL are compiled with the COMPILE_MML_TOOL
28// flag defined on the command line. this symbol should not be defined on any project
29// that uses this DLL. This way any other project whose source files include this file see
30// MML_API functions as being imported from a DLL, wheras this DLL sees symbols
31// defined with this macro as being exported.
32#if defined(_WIN32) // MSVC and mingw
33#ifdef COMPILE_MML_TOOL
34#define MML_API __declspec(dllexport)
35//#define MML_STL_TEMPLATE
36#else
37#define MML_API __declspec(dllimport)
38//#define MML_STL_TEMPLATE export
39#endif
40#else
41// for all other platforms MML_API is defined to be "nothing"
42#ifndef MML_API
43#define MML_API
44#endif
45#endif // MSVC and mingw
46
47// tentative to understand http://support.microsoft.com/kb/168958/en-us
48// failed...
49/*#if defined(_WIN32) // MSVC and mingw
50
51 //disable warnings on 255 char debug symbols
52 #pragma warning (disable : 4786)
53 //disable warnings on extern before template instantiation
54 #pragma warning (disable : 4231)
55
56 // instantiate classes for stl templates
57 // This does not create an object. It only forces the generation of all
58 // of the members of std::auto_ptr<mml::MonitoringIn>, std::vector<Monitor*>
59 // and std::vector<mml::TimeStep*>. It exports
60 // them from the DLL and imports them into the .exe file.
61 MML_STL_TEMPLATE template class MML_API std::auto_ptr<mml::MonitoringIn>;
62 MML_STL_TEMPLATE template class MML_API std::vector<Monitor*>;
63 MML_STL_TEMPLATE template class MML_API std::vector<mml::TimeStep*>;
64#endif
65 */
66//... disabling the warning on windows msvc
67#if defined(_WIN32) && !defined(__MINGW32__) // MSVC only
68#pragma warning( disable : 4251 )
69#endif // MSVC only