diff --git a/src/xpdev/xpprintf.c b/src/xpdev/xpprintf.c
index d0a1376b19730ce5a58fa26c3f5d33b9011e5fcc..48dbb534b4574f6227989c2a5b94deff69a79184 100644
--- a/src/xpdev/xpprintf.c
+++ b/src/xpdev/xpprintf.c
@@ -55,12 +55,12 @@
 /* Maximum length of a format specifier including the % */
 #define MAX_FORMAT_LEN	256
 
-void xp_asprintf_free(char *format)
+void DLLCALL xp_asprintf_free(char *format)
 {
 	free(format);
 }
 
-int xp_printf_get_type(const char *format)
+int DLLCALL xp_printf_get_type(const char *format)
 {
 	const char	*p;
 	int		modifier=0;
@@ -287,7 +287,7 @@ int xp_printf_get_type(const char *format)
  * that the type passed to sprintf() is the type passed to
  * xp_asprintf_next().
  */
-char *xp_asprintf_next(char *format, int type, ...)
+char* DLLCALL xp_asprintf_next(char *format, int type, ...)
 {
 	va_list vars;
 	char			*p;
@@ -1255,7 +1255,7 @@ char *xp_asprintf_next(char *format, int type, ...)
 	return(format);
 }
 
-char *xp_asprintf_start(const char *format)
+char* DLLCALL xp_asprintf_start(const char *format)
 {
 	char	*ret;
 	char	*p;
@@ -1286,7 +1286,7 @@ char *xp_asprintf_start(const char *format)
 	return(ret);
 }
 
-char *xp_asprintf_end(char *format, size_t *lenret)
+char* DLLCALL xp_asprintf_end(char *format, size_t *lenret)
 {
 	char	*p;
 	size_t	len;
@@ -1306,7 +1306,7 @@ char *xp_asprintf_end(char *format, size_t *lenret)
 	return(format);
 }
 
-char *xp_vasprintf(const char *format, va_list va)
+char* DLLCALL xp_vasprintf(const char *format, va_list va)
 {
 	char	*working;
 	char	*next;
@@ -1373,7 +1373,7 @@ char *xp_vasprintf(const char *format, va_list va)
 	return(next);
 }
 
-char *xp_asprintf(const char *format, ...)
+char* DLLCALL xp_asprintf(const char *format, ...)
 {
 	char	*ret;
 	va_list	va;
diff --git a/src/xpdev/xpprintf.h b/src/xpdev/xpprintf.h
index b992e886623d31f268c95a200e846b88ba14c2c0..8784f517d06b1e55f2d59f9726d55ce78c01968e 100644
--- a/src/xpdev/xpprintf.h
+++ b/src/xpdev/xpprintf.h
@@ -40,6 +40,7 @@
 #define _XPPRINTF_H_
 
 #include <stdarg.h>
+#include "wrapdll.h"
 
 /* Supported printf argument types */
 #define XP_PRINTF_TYPE_AUTO			0
@@ -71,13 +72,13 @@
 #if defined(__cplusplus)
 extern "C" {
 #endif
-void xp_asprintf_free(char *format);
-char *xp_asprintf_start(const char *format);
-char *xp_asprintf_next(char *format, int type, ...);
-char *xp_asprintf_end(char *format, size_t *endlen);
-char *xp_asprintf(const char *format, ...);
-char *xp_vasprintf(const char *format, va_list va);
-int xp_printf_get_type(const char *format);
+DLLEXPORT void DLLCALL xp_asprintf_free(char *format);
+DLLEXPORT char* DLLCALL xp_asprintf_start(const char *format);
+DLLEXPORT char* DLLCALL xp_asprintf_next(char *format, int type, ...);
+DLLEXPORT char* DLLCALL xp_asprintf_end(char *format, size_t *endlen);
+DLLEXPORT char* DLLCALL xp_asprintf(const char *format, ...);
+DLLEXPORT char* DLLCALL xp_vasprintf(const char *format, va_list va);
+DLLEXPORT int DLLCALL xp_printf_get_type(const char *format);
 #if defined(__cplusplus)
 }
 #endif