Add new define to declare scilab gateway in C / C++.
[scilab.git] / scilab / modules / dynamic_link / includes / addinter.h
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) INRIA - Allan CORNET
4  * 
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at    
9  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  *
11  */
12
13 #ifndef __ADDINTER_H__
14 #define  __ADDINTER_H__
15
16 #include "dynlib_dynamic_link.h"
17 #include "machine.h"
18
19 /** 
20 * the first dynamic interface is at position 500+1 
21 */
22 #define DynInterfStart 500
23
24 #define NumberMaxFunctionsByGateway 1000
25
26 #define MAXDYNINTERF 50 /* default value compatibility scilab 4.x */
27 /* !!! WARNING !!! */
28 /* On Windows , AddInterfaceToScilab based on LoadLibrary C function */
29 /* you cannot load more than 80 dynamic libraries at the same time. */
30 /* Scilab will return a error (code Windows 1114) in this case.*/
31 /* A dynamic link library (DLL) initialization routine failed. */
32
33
34 /**
35 * Remove interface in scilab
36 * @param[in] id of interface
37 */
38 DYNAMIC_LINK_IMPEXP void RemoveInterf(int id);
39
40 /**
41 * Add a interface in Scilab
42 * @param[in] filenamelib dynamic libraries filename
43 * @param[in] spname Name of interface routine entry point 
44 * @param[in] fcts Name of new Scilab function implemented in the new interface 
45 * @param[in] sizefcts size of fcts array
46 * @return a int id of interface (-1 failed)
47 */
48 DYNAMIC_LINK_IMPEXP int AddInterfaceToScilab(char *filenamelib,char *spname,char **fcts,int sizefcts);
49
50 /**
51 * TO DO: comments 
52 */
53 DYNAMIC_LINK_IMPEXP void C2F(userlk)(int *k);
54
55 #endif /*  __ADDINTER_H__ */