PROPOSAL -------- #ifdef CURL_STATICLIB # define CURL_EXTERN #elif defined(WIN32) || defined(_WIN32) || defined(__SYMBIAN32__) # if defined(BUILDING_LIBCURL) # define CURL_EXTERN __declspec(dllexport) # else # define CURL_EXTERN __declspec(dllimport) # endif #elif defined(BUILDING_LIBCURL) && defined(CURL_HIDDEN_SYMBOLS) # define CURL_EXTERN CURL_EXTERN_SYMBOL #else # define CURL_EXTERN #endif WIN32 or SYMBIAN32 CURL_STATICLIB BUILDING_LIBCURL CURL_HIDDEN_SYMBOLS CURL_EXTERN CASE ----------- ---------------- ------------------ --------------------- --------------------- --------- 0 0 0 0 nothing 0 0 0 1 nothing [1-new] 0 0 1 0 nothing 0 0 1 1 CURL_EXTERN_SYMBOL 0 1 0 0 nothing 0 1 0 1 nothing [5-new] 0 1 1 0 nothing 0 1 1 1 nothing [7-new] 1 0 0 0 __declspec(dllimport) 1 0 0 1 __declspec(dllimport) 1 0 1 0 __declspec(dllexport) 1 0 1 1 __declspec(dllexport) 1 1 0 0 nothing 1 1 0 1 nothing [D-new] 1 1 1 0 nothing 1 1 1 1 nothing [F-new] 1: defined 0: undefined