diff --git a/src/mempool.c b/src/mempool.c index 0acbabb..41853bd 100755 --- a/src/mempool.c +++ b/src/mempool.c @@ -88,7 +88,7 @@ static alloc_hdr_t * AllocHdr() ** Returns pointer to the new pool. */ -alloc_handle_t * AllocInit() +DLLEXPORT alloc_handle_t * AllocInit() { alloc_handle_t *newpool; @@ -108,7 +108,7 @@ alloc_handle_t * AllocInit() ** memory from the current pool. */ -char * Alloc(long size) +DLLEXPORT char *Alloc(long size) { alloc_hdr_t *hdr = root->current; char *ptr; @@ -158,7 +158,7 @@ char * Alloc(long size) ** Change the current pool. Return the old pool. */ -alloc_handle_t * AllocSetPool(alloc_handle_t *newpool) +DLLEXPORT alloc_handle_t * AllocSetPool(alloc_handle_t *newpool) { alloc_handle_t *old = (alloc_handle_t *) root; root = (alloc_root_t *) newpool; @@ -173,7 +173,7 @@ alloc_handle_t * AllocSetPool(alloc_handle_t *newpool) ** so this is very fast. */ -void AllocReset() +DLLEXPORT void AllocReset() { root->current = root->first; root->current->free = root->current->block; @@ -187,7 +187,7 @@ void AllocReset() ** Don't use where AllocReset() could be used. */ -void AllocFreePool() +DLLEXPORT void AllocFreePool() { alloc_hdr_t *tmp, *hdr = root->first; diff --git a/src/mempool.h b/src/mempool.h index 1c4dfc7..2e43dde 100755 --- a/src/mempool.h +++ b/src/mempool.h @@ -6,14 +6,31 @@ ** The type alloc_handle_t provides an opaque reference to the ** alloc pool - only the alloc routines know its structure. */ +#ifndef DLLEXPORT + #ifdef DLL + #ifdef __cplusplus + #define DLLEXPORT extern "C" __declspec(dllexport) + #else + #define DLLEXPORT __declspec(dllexport) + #endif + #elif defined(CYGWIN) + #define DLLEXPORT __stdcall + #else + #ifdef __cplusplus + #define DLLEXPORT + #else + #define DLLEXPORT + #endif + #endif +#endif typedef struct { long dummy; } alloc_handle_t; -alloc_handle_t *AllocInit(void); -char *Alloc(long); -alloc_handle_t *AllocSetPool(alloc_handle_t *); -void AllocReset(void); -void AllocFreePool(void); +DLLEXPORT alloc_handle_t *AllocInit(void); +DLLEXPORT char *Alloc(long); +DLLEXPORT alloc_handle_t *AllocSetPool(alloc_handle_t *); +DLLEXPORT void AllocReset(void); +DLLEXPORT void AllocFreePool(void);