MDP plugins are contained within dynamic libraries. To simplify the loading of MDP plugins in emulators, MDP provides a lightweight wrapper file, mdp_dlopen.h. This file contains macros that wrap around operating system functionality for loading dynamic libraries.
Operating systems currently supported with mdp_dlopen.h:
Wrapper macros provided by mdp_dlopen.h:
Function | Description |
---|---|
void* mdp_dlopen(const char* filename); |
Opens a dynamic library. filename: Filename of the dynamic library to open. Returns a pointer to the library handle, or NULL on error. |
void mdp_dlclose(void* handle); |
Closes a dynamic library. handle: Library handle previously obtained with mdp_dlopen() |
void* mdp_dlsym(void* handle, const char* symbol); |
Retrieves the specified symbol from an open library. handle: Library handle previously obtained with mdp_dlopen(). symbol: Name of the symbol to retrieve. Returns a pointer to the symbol in the library, or NULL on error. |
const char* mdp_dlerror(void); |
Retrieves the last error message from the dynamic library loader. Returns a const char* string, which must be freed later. |
void mdp_dlerror_str_free(const char* errstr); |
Frees an error string obtained by mdp_dlerror(). errstr: String to free. |
Note: mdp_dlopen.h is provided as a convenience. Emulators implementing MDP do not need to use this file in order to load plugins.