1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| // _WIN32 et _WIN32_ sont deux symboles utilisés sous windows
#if defined(_WIN32) || defined(__WIN32__)
// on ajoute un define automatique "SHARED" aux options de compilation
# if defined(SHARED)
// on choisit un symbole qui ne sera utilisé que lors de la compilation de la dll
# if defined(BUILD_MYDLL)
// si toutes ces conditions sont remplies, il faut exporter la fonction/ les classes
# define MYDLL_API __declspec(dllexport)
# else
// sinon, on utilise la dll, il faut importer les fonctions / les classes
# define MYDLL_API __declspec(dllimport)
# endif // BUILD_MYDLL
// si SHARED n'est pas défini, on travaille avec une bibliothèque statique
// la convention d'appel peut etre vide
# else
# define MYDLL_API
# endif // SHARED
#else
// si on ne compile pas sous windows, la convention d'appel est inutile, tant
// pour les bibliothèques statiques (lib*.a) que pour les bibliothèques dynamiques (*.so)
# define MYDLL_API
#endif //_WIN32 or _WIN32_ |
Partager