diff --git a/src/include/microhttpd.h b/src/include/microhttpd.h index 5ca192db..e1114458 100644 --- a/src/include/microhttpd.h +++ b/src/include/microhttpd.h @@ -166,7 +166,14 @@ typedef intptr_t ssize_t; #endif #ifndef _MHD_EXTERN +#if defined(_WIN32) && defined(MHD_W32LIB) #define _MHD_EXTERN extern +#elif defined (_WIN32) && defined(MHD_W32DLL) +/* Define MHD_W32DLL when using MHD as W32 .DLL to speed up linker a little */ +#define _MHD_EXTERN __declspec(dllimport) +#else +#define _MHD_EXTERN extern +#endif #endif #ifndef MHD_SOCKET_DEFINED diff --git a/src/include/platform.h b/src/include/platform.h index 83753c14..ad97c525 100644 --- a/src/include/platform.h +++ b/src/include/platform.h @@ -40,7 +40,21 @@ #ifdef _MHD_EXTERN #undef _MHD_EXTERN #endif /* _MHD_EXTERN */ +#if defined(_WIN32) && defined(MHD_W32LIB) #define _MHD_EXTERN extern +#elif defined (_WIN32) && defined(MHD_W32DLL) +#define _MHD_EXTERN __declspec(dllimport) +#else +#define _MHD_EXTERN extern +#endif +#elif !defined(_MHD_EXTERN) /* && BUILDING_MHD_LIB */ +#if defined(_WIN32) && defined(MHD_W32LIB) +#define _MHD_EXTERN extern +#elif defined (_WIN32) && defined(MHD_W32DLL) +#define _MHD_EXTERN extern __declspec(dllexport) +#else +#define _MHD_EXTERN extern +#endif #endif /* BUILDING_MHD_LIB */ #define _XOPEN_SOURCE_EXTENDED 1