diff --git a/src/xpdev/dirwrap.c b/src/xpdev/dirwrap.c
index 4ec8bdb963386f1952e0fff3377b2a3299808f88..64237fe79f3e5a022b96cfa0297b7ecec55e2c75 100644
--- a/src/xpdev/dirwrap.c
+++ b/src/xpdev/dirwrap.c
@@ -334,7 +334,7 @@ long DLLCALL getdirsize(const char* path, BOOL include_subdirs, BOOL subdir_only
 /* POSIX directory operations using Microsoft _findfirst/next API.			*/
 /****************************************************************************/
 #if defined(_MSC_VER) || defined(__DMC__)
-DIR* opendir(const char* dirname)
+DIR* DLLCALL opendir(const char* dirname)
 {
 	DIR*	dir;
 
@@ -354,7 +354,7 @@ DIR* opendir(const char* dirname)
 	}
 	return(dir);
 }
-struct dirent* readdir(DIR* dir)
+struct dirent* DLLCALL readdir(DIR* dir)
 {
 	if(dir==NULL)
 		return(NULL);
@@ -367,7 +367,7 @@ struct dirent* readdir(DIR* dir)
 		dir->end=TRUE;
 	return(&dir->dirent);
 }
-int closedir (DIR* dir)
+int DLLCALL closedir (DIR* dir)
 {
 	if(dir==NULL)
 		return(-1);
@@ -375,7 +375,7 @@ int closedir (DIR* dir)
 	free(dir);
 	return(0);
 }
-void rewinddir(DIR* dir)
+void DLLCALL rewinddir(DIR* dir)
 {
 	if(dir==NULL)
 		return;
diff --git a/src/xpdev/dirwrap.h b/src/xpdev/dirwrap.h
index 572954bfb92c2d11d438646659bd1378f60bbe23..e1203fb45104d387d57a88f4a6627149e76c1339 100644
--- a/src/xpdev/dirwrap.h
+++ b/src/xpdev/dirwrap.h
@@ -156,10 +156,10 @@ extern "C" {
 
 	/* Prototypes.
 	 */
-	DIR            *	opendir  (const char *__dirname);
-	struct dirent  *	readdir  (DIR *__dir);
-	int                 closedir (DIR *__dir);
-	void                rewinddir(DIR *__dir);
+	DLLEXPORT DIR* DLLCALL opendir  (const char *__dirname);
+	DLLEXPORT struct dirent* DLLCALL readdir  (DIR *__dir);
+	DLLEXPORT int DLLCALL closedir (DIR *__dir);
+	DLLEXPORT void DLLCALL rewinddir(DIR *__dir);
 #elif !defined(__WATCOMC__)
 	#include <dirent.h>	/* POSIX directory functions */
 #endif