| #pragma once |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #if defined _WIN32 || defined __CYGWIN__ |
| #if defined BUILDING_ADDER |
| #define DLL_PUBLIC __declspec(dllexport) |
| #else |
| #define DLL_PUBLIC __declspec(dllimport) |
| #endif |
| #else |
| #if defined __GNUC__ |
| #if defined BUILDING_ADDER |
| #define DLL_PUBLIC __attribute__ ((visibility("default"))) |
| #else |
| #define DLL_PUBLIC |
| #endif |
| #else |
| #pragma message ("Compiler does not support symbol visibility.") |
| #define DLL_PUBLIC |
| #endif |
| #endif |
| |
| typedef struct _Adder adder; |
| |
| DLL_PUBLIC extern adder* adder_create(int number); |
| DLL_PUBLIC extern int adder_add(adder *a, int number); |
| DLL_PUBLIC extern void adder_destroy(adder*); |
| |
| #ifdef __cplusplus |
| } |
| #endif |