inline size_t wxStrlen(const char *s) { return s ? wxCRT_StrlenA(s) : 0; }
 inline size_t wxStrlen(const wchar_t *s) { return s ? wxCRT_StrlenW(s) : 0; }
 #ifndef wxWCHAR_T_IS_WXCHAR16
-       size_t wxStrlen(const wxChar16 *s );
+       WXDLLIMPEXP_BASE size_t wxStrlen(const wxChar16 *s );
 #endif
 #ifndef wxWCHAR_T_IS_WXCHAR32
-       size_t wxStrlen(const wxChar32 *s );
+       WXDLLIMPEXP_BASE size_t wxStrlen(const wxChar32 *s );
 #endif
 #define wxWcslen wxCRT_StrlenW
 
 inline char* wxStrdup(const char *s) { return wxCRT_StrdupA(s); }
 inline wchar_t* wxStrdup(const wchar_t *s) { return wxCRT_StrdupW(s); }
 #ifndef wxWCHAR_T_IS_WXCHAR16
-       wxChar16* wxStrdup(const wxChar16* s);
+       WXDLLIMPEXP_BASE wxChar16* wxStrdup(const wxChar16* s);
 #endif
 #ifndef wxWCHAR_T_IS_WXCHAR32
-       wxChar32* wxStrdup(const wxChar32* s);
+       WXDLLIMPEXP_BASE wxChar32* wxStrdup(const wxChar32* s);
 #endif
 
 #endif /* __cplusplus */
 
 #endif // wxCRT_StrdupW
 
 #ifndef wxWCHAR_T_IS_WXCHAR16
-WXDLLIMPEXP_BASE size_t wxStrlen(const wxChar16 *s ) 
+size_t wxStrlen(const wxChar16 *s ) 
 { 
     if (!s) return 0; 
     size_t i=0; 
     return i;
 }
 
-WXDLLIMPEXP_BASE wxChar16* wxStrdup(const wxChar16* s)
+wxChar16* wxStrdup(const wxChar16* s)
 { 
   size_t size = (wxStrlen(s) + 1) * sizeof(wxChar16); 
   wxChar16 *ret = (wxChar16*) malloc(size);
 #endif
 
 #ifndef wxWCHAR_T_IS_WXCHAR32
-WXDLLIMPEXP_BASE size_t wxStrlen(const wxChar32 *s ) 
+size_t wxStrlen(const wxChar32 *s ) 
 { 
     if (!s) return 0; 
     size_t i=0; 
     return i;
 }
 
-WXDLLIMPEXP_BASE wxChar32* wxStrdup(const wxChar32* s)
+wxChar32* wxStrdup(const wxChar32* s)
 { 
   size_t size = (wxStrlen(s) + 1) * sizeof(wxChar32); 
   wxChar32 *ret = (wxChar32*) malloc(size);