mirror of
https://github.com/Relintai/sdl2_frt.git
synced 2024-12-20 22:16:49 +01:00
Added SDL_GetLoadedModule to do the equivalent of GetModuleHandle/dlload(NOLOAD)
CR: Jorgen
This commit is contained in:
parent
cf119f786a
commit
1fa4939a38
@ -57,6 +57,16 @@ extern "C" {
|
||||
*/
|
||||
extern DECLSPEC void *SDLCALL SDL_LoadObject(const char *sofile);
|
||||
|
||||
/**
|
||||
* This function returns a handle to an already-loaded shared object and
|
||||
* returns a pointer to the object handle. If the object file was not loaded
|
||||
* the function returns NULL. This function adds a reference to the shared
|
||||
* object, so the caller should call SDL_UnloadObject when they are finished
|
||||
* with this reference to ensure that the object can be unloaded.
|
||||
* The 'sofile' parameter is a system dependent name of the object file.
|
||||
*/
|
||||
extern DECLSPEC void *SDLCALL SDL_GetLoadedObject(const char *sofile);
|
||||
|
||||
/**
|
||||
* Given an object handle, this function looks up the address of the
|
||||
* named function in the shared object and returns it. This address
|
||||
|
@ -41,6 +41,13 @@ SDL_LoadObject(const char *sofile)
|
||||
return (handle);
|
||||
}
|
||||
|
||||
void *
|
||||
SDL_GetLoadedObject(const char *sofile)
|
||||
{
|
||||
void *handle = dlopen(sofile, RTLD_NOLOAD);
|
||||
return (handle);
|
||||
}
|
||||
|
||||
void *
|
||||
SDL_LoadFunction(void *handle, const char *name)
|
||||
{
|
||||
|
@ -46,6 +46,22 @@ SDL_LoadObject(const char *sofile)
|
||||
return handle;
|
||||
}
|
||||
|
||||
void *
|
||||
SDL_GetLoadedObject(const char *sofile)
|
||||
{
|
||||
LPTSTR tstr = WIN_UTF8ToString(sofile);
|
||||
void *handle = (void *) GetModuleHandle(tstr);
|
||||
|
||||
/* if we got a handle, call LoadLibrary to get
|
||||
* it again with the ref count incremented.
|
||||
* We do this to match the dlopen version of this function */
|
||||
handle = (void *)LoadLibrary( tstr );
|
||||
|
||||
SDL_free(tstr);
|
||||
|
||||
return handle;
|
||||
}
|
||||
|
||||
void *
|
||||
SDL_LoadFunction(void *handle, const char *name)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user