mirror of
https://github.com/Relintai/sdl2_frt.git
synced 2024-12-29 20:27:12 +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);
|
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
|
* Given an object handle, this function looks up the address of the
|
||||||
* named function in the shared object and returns it. This address
|
* named function in the shared object and returns it. This address
|
||||||
|
@ -41,6 +41,13 @@ SDL_LoadObject(const char *sofile)
|
|||||||
return (handle);
|
return (handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void *
|
||||||
|
SDL_GetLoadedObject(const char *sofile)
|
||||||
|
{
|
||||||
|
void *handle = dlopen(sofile, RTLD_NOLOAD);
|
||||||
|
return (handle);
|
||||||
|
}
|
||||||
|
|
||||||
void *
|
void *
|
||||||
SDL_LoadFunction(void *handle, const char *name)
|
SDL_LoadFunction(void *handle, const char *name)
|
||||||
{
|
{
|
||||||
|
@ -46,6 +46,22 @@ SDL_LoadObject(const char *sofile)
|
|||||||
return handle;
|
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 *
|
void *
|
||||||
SDL_LoadFunction(void *handle, const char *name)
|
SDL_LoadFunction(void *handle, const char *name)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user