#pragma once

#if defined(_MSC_VER)
#define DLL_API __declspec(dllexport)

#ifndef STDCALL
#define STDCALL __stdcall
#endif

#ifndef CDECL
#define CDECL __cdecl
#endif
#else
#define DLL_API __attribute__ ((visibility ("default")))

#ifndef STDCALL
#define STDCALL __attribute__((stdcall))
#endif

#ifndef CDECL
#define CDECL __attribute__((cdecl))
#endif
#endif

#define CS_OUT
#pragma once

#if defined(_MSC_VER)
#define DLL_API __declspec(dllexport)
#define STDCALL __stdcall
#define CDECL __cdecl
#else
#define DLL_API __attribute__ ((visibility ("default")))
#define STDCALL __attribute__((stdcall))
#define CDECL __attribute__((cdecl))
#endif

#define CS_OUT
--- 
+++ 
@@ -2,12 +2,24 @@
 
 #if defined(_MSC_VER)
 #define DLL_API __declspec(dllexport)
+
+#ifndef STDCALL
 #define STDCALL __stdcall
+#endif
+
+#ifndef CDECL
 #define CDECL __cdecl
+#endif
 #else
 #define DLL_API __attribute__ ((visibility ("default")))
+
+#ifndef STDCALL
 #define STDCALL __attribute__((stdcall))
+#endif
+
+#ifndef CDECL
 #define CDECL __attribute__((cdecl))
+#endif
 #endif
 
 #define CS_OUT
Check for defines before defining to get rid of some warnings.
