Class to help with load of shared library functions
You can add them as parent to your class and to help with load of shared library functions.
More...
|
#define | REGISTER_DLL_SYMBOL(functionPtr) |
| Macro to translate the given pointer value name of functions to requested function name.
|
|
Class to help with load of shared library functions
You can add them as parent to your class and to help with load of shared library functions.
- Note
- To use on Windows must you also include dlfcn-win32 on your addon!
Furthermore, this allows the use of Android where the required library is copied to an EXE useable folder.
Example:
...
{
public:
bool Start();
...
};
: CInstanceAudioDecoder(
instance, kodiVersion)
{
}
bool CMyInstance::Start()
{
std::string lib = kodi::GetAddonPath("myLib.so");
if (!LoadDll(lib)) return false;
Init();
return true;
}
...
void * KODI_HANDLE
Standard undefined pointer handle.
Definition addon_base.h:291
Definition addons/kodi-dev-kit/include/kodi/addon-instance/AudioDecoder.h:431
unsigned int(ATTR_APIENTRYP PFN_KODI_ADDON_VISUALIZATION_GET_PRESETS_V1)(const KODI_ADDON_VISUALIZATION_HDL hdl)
Definition kodi-dev-kit/include/kodi/c-api/addon-instance/Visualization.h:73
typedef void(ATTR_APIENTRYP PFN_KODI_ADDON_SCREENSAVER_STOP_V1)(const KODI_ADDON_SCREENSAVER_HDL hdl)
Definition addon_base.h:268
◆ REGISTER_DLL_SYMBOL
#define REGISTER_DLL_SYMBOL |
( |
| functionPtr | ) |
|
◆ CDllHelper()
kodi::tools::CDllHelper::CDllHelper |
( |
| ) |
|
|
default |
◆ LoadDll()
bool kodi::tools::CDllHelper::LoadDll |
( |
std::string | path | ) |
|
|
inline |
Function to load requested library.
- Parameters
-
[in] | path | The path with filename of shared library to load |
- Returns
- true if load was successful done
◆ RegisterSymbol()
template<typename T >
bool kodi::tools::CDllHelper::RegisterSymbol |
( |
T & | functionPtr, |
|
|
const char * | strFunctionPtr ) |
|
inline |
Function to register requested library symbol.
- Warning
- This function should not be used, use instead the macro REGISTER_DLL_SYMBOL to register the symbol pointer.
Use this always via Macro, e.g.:
◆ ~CDllHelper()
virtual kodi::tools::CDllHelper::~CDllHelper |
( |
| ) |
|
|
inlinevirtual |