diff --git a/src/dynapi/SDL_dynapi.c b/src/dynapi/SDL_dynapi.c index c0051e9b5..efb572803 100644 --- a/src/dynapi/SDL_dynapi.c +++ b/src/dynapi/SDL_dynapi.c @@ -230,6 +230,24 @@ static SDL_INLINE void *get_sdlapi_entry(const char *fname, const char *sym) } return retval; } + +#elif defined(__OS2__) +#define INCL_DOS +#define INCL_DOSERRORS +#include +static SDL_INLINE void *get_sdlapi_entry(const char *fname, const char *sym) +{ + HMODULE hmodule; + PFN retval = NULL; + char error[256]; + if (NO_ERROR == DosLoadModule(&error, sizeof(error), fname, &hmodule)) { + if (NO_ERROR == DosQueryProcAddr(handle, 0, sym, &retval)) { + DosFreeModule(hmodule); + } + } + return (void *) retval; +} + #else #error Please define your platform. #endif