diff --git a/Common/GmshAPI.h b/Common/GmshAPI.h index a626e3804d81a8b98f38bec7110a255bf67c1903..652560261261bd97154b64b642b843d91d64b52f 100644 --- a/Common/GmshAPI.h +++ b/Common/GmshAPI.h @@ -17,6 +17,12 @@ #ifndef _GMSH_API_H_ #define _GMSH_API_H_ +#if defined(WIN32) +#define GMSH_API __declspec(dllexport) int +#else +#define GMSH_API int +#endif + typedef struct gmshEntity{ int dim, tag; }; typedef struct gmshIntVector{ int n; int *v; }; typedef struct gmshDoubleVector{ int n; double *v; }; @@ -27,38 +33,38 @@ typedef struct gmshEntityVector{ int n; gmshEntity *v; }; extern "C" { /* Gmsh */ - int gmshInitialize(int argc, char **argv); - int gmshFinalize(); - int gmshOpen(const char *fileName); - int gmshMerge(const char *fileName); - int gmshExport(const char *fileName); - int gmshClear(); + GMSH_API gmshInitialize(int argc, char **argv); + GMSH_API gmshFinalize(); + GMSH_API gmshOpen(const char *fileName); + GMSH_API gmshMerge(const char *fileName); + GMSH_API gmshExport(const char *fileName); + GMSH_API gmshClear(); /* Gmsh Options */ - int gmshOptionsSetNumber(const char *name, double value); - int gmshOptionsGetNumber(const char *name, double *value); + GMSH_API gmshOptionsSetNumber(const char *name, double value); + GMSH_API gmshOptionsGetNumber(const char *name, double *value); /* Gmsh Model */ - int gmshModelCreate(const char *name); - int gmshModelSetCurrent(const char *name); - int gmshModelDestroy(); - int gmshModelMesh(int dim); - int gmshModelAddEmbeddedVertex(int tag, int inDim, int inTag); + GMSH_API gmshModelCreate(const char *name); + GMSH_API gmshModelSetCurrent(const char *name); + GMSH_API gmshModelDestroy(); + GMSH_API gmshModelMesh(int dim); + GMSH_API gmshModelAddEmbeddedVertex(int tag, int inDim, int inTag); /* Gmsh Model Geo Internals */ - int gmshModelGeoAddVertex(int *tag, double x, double y, double z, double lc); - int gmshModelGeoAddLine(int *tag, int startVertexTag, int endVertexTag); - int gmshModelGeoAddPolyLine(int *tag, const gmshIntVector *vertexTags); - int gmshModelGeoExtrude(gmshEntityVector *in, double dx, double dy, double dz, - gmshEntityVector *out); - int gmshModelGeoSynchronize(); + GMSH_API gmshModelGeoAddVertex(int *tag, double x, double y, double z, double lc); + GMSH_API gmshModelGeoAddLine(int *tag, int startVertexTag, int endVertexTag); + GMSH_API gmshModelGeoAddPolyLine(int *tag, const gmshIntVector *vertexTags); + GMSH_API gmshModelGeoExtrude(const gmshEntityVector *in, double dx, double dy, + double dz, gmshEntityVector *out); + GMSH_API gmshModelGeoSynchronize(); /* Gmsh Model OCC Internals */ - int gmshModelOCCAddVertex(int *tag, double x, double y, double z, double lc); - int gmshModelOCCAddLine(int *tag, int startVertexTag, int endVertexTag); - int gmshModelOCCExtrude(const gmshEntityVector *in, double dx, double dy, double dz, - gmshEntityVector *out); - int gmshModelOCCSynchronize(); + GMSH_API gmshModelOCCAddVertex(int *tag, double x, double y, double z, double lc); + GMSH_API gmshModelOCCAddLine(int *tag, int startVertexTag, int endVertexTag); + GMSH_API gmshModelOCCExtrude(const gmshEntityVector *in, double dx, double dy, + double dz, gmshEntityVector *out); + GMSH_API gmshModelOCCSynchronize(); } #endif