diff --git "a/include/iconv.h.build.in" "b/include/iconv.h.build.in"
index 0feb068..74e5613 100644
--- "a/include/iconv.h.build.in"	
+++ "b/include/iconv.h.build.in"
@@ -27,6 +27,12 @@
 #define LIBICONV_DLL_EXPORTED __attribute__((__visibility__("default")))
+#elif defined(_WIN32) && @LIBICONV_DYNAMIC@
+  #if defined(libiconv_EXPORTS)
+    #define LIBICONV_DLL_EXPORTED __declspec(dllexport)
+  #else
+    #define LIBICONV_DLL_EXPORTED __declspec(dllimport)
+  #endif
 #else
 #define LIBICONV_DLL_EXPORTED
 #endif
 extern LIBICONV_DLL_EXPORTED @DLL_VARIABLE@ int _libiconv_version; /* Likewise */
 
diff --git "a/libcharset/include/localcharset.h.build.in" "b/libcharset/include/localcharset.h.build.in"
index c691359..2a23585 100644
--- "a/libcharset/include/localcharset.h.build.in"	
+++ "b/libcharset/include/localcharset.h.build.in"
@@ -24,6 +24,12 @@
 #define LIBCHARSET_DLL_EXPORTED __attribute__((__visibility__("default")))
+#elif defined(_WIN32) && @LIBICONV_DYNAMIC@
+  #if defined(libcharset_EXPORTS)
+    #define LIBCHARSET_DLL_EXPORTED __declspec(dllexport)
+  #else
+    #define LIBCHARSET_DLL_EXPORTED __declspec(dllimport)
+  #endif
 #else
 #define LIBCHARSET_DLL_EXPORTED
 #endif
 
 
