#if defined(GC_DLL) && !defined(GC_API)
-# if defined(__MINGW32__) || defined(__CEGCC__)
-# if defined(__cplusplus) && defined(GC_BUILD) && defined(__MINGW32__)
+# if defined(__CEGCC__)
+# if defined(GC_BUILD)
+# define GC_API __declspec(dllexport)
+# else
+# define GC_API __declspec(dllimport)
+# endif
+
+# elif defined(__MINGW32__)
+# if defined(__cplusplus) && defined(GC_BUILD)
# define GC_API extern __declspec(dllexport)
# elif defined(GC_BUILD) || defined(__MINGW32_DELAY_LOAD__)
# define GC_API __declspec(dllexport)
# else
-# define GC_API __declspec(dllimport)
+# define GC_API extern __declspec(dllimport)
# endif
# elif defined(_MSC_VER) || defined(__DMC__) || defined(__BORLANDC__) \