documentation compilation crash on the compilation chain
[scilab.git] / scilab / modules / hdf5 / src / c / DllmainHdf5.c
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2009 - DIGITEO  -
4  *
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  *
7  * This file is hereby licensed under the terms of the GNU GPL v2.0,
8  * pursuant to article 5.3.4 of the CeCILL v.2.1.
9  * This file was originally licensed under the terms of the CeCILL v2.1,
10  * and continues to be available under such terms.
11  * For more information, see the COPYING file which you should have received
12  * along with this program.
13  *
14  */
15
16 #include "gw_hdf5.h"
17
18 #ifdef _MSC_VER
19 #include <windows.h>
20 /*--------------------------------------------------------------------------*/
21 //for Visual Leak Detector in debug compilation mode
22 //#define DEBUG_VLD
23 #if defined(DEBUG_VLD) && defined(_DEBUG)
24 #include <vld.h>
25 #endif
26 /*--------------------------------------------------------------------------*/
27 #pragma comment(lib,"../../../../bin/libintl.lib")
28 #pragma comment(lib,"../../../../bin/hdf5.lib")
29 #pragma comment(lib,"../../../../bin/hdf5_cpp.lib")
30 #pragma comment(lib,"../../../../bin/hdf5_hl.lib")
31 #pragma comment(lib,"../../../../bin/hdf5_hl_cpp.lib")
32 /*--------------------------------------------------------------------------*/
33 int WINAPI DllMain(HINSTANCE hinstDLL, DWORD flag, LPVOID reserved)
34 {
35     switch (flag)
36     {
37         case DLL_PROCESS_ATTACH :
38         {
39             Initialize_HDF5();
40             break;
41         }
42         case DLL_PROCESS_DETACH :
43         {
44             Finalize_HDF5();
45             break;
46         }
47         case DLL_THREAD_ATTACH :
48         {
49             break;
50         }
51         case DLL_THREAD_DETACH :
52         {
53             break;
54         }
55         default :
56         {
57             return 0;
58         }
59     }
60     return 1;
61 }
62 #else
63 void __attribute__ ((constructor)) load_hdf5(void);
64 void __attribute__ ((destructor)) unload_hdf5(void);
65
66 void load_hdf5(void)
67 {
68     Initialize_HDF5();
69 }
70
71 void unload_hdf5(void)
72 {
73     // this finalize lead to a double free in HDF5
74     //Finalize_HDF5();
75 }
76 #endif
77 /*--------------------------------------------------------------------------*/