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:
#include <kodi/tools/DllHelper.h>
...
{
public:
CMyInstance(KODI_HANDLE instance, const std::string& kodiVersion);
bool Start();
...
int (*Init)();
void (*Cleanup)();
int (*GetLength)();
};
CMyInstance::CMyInstance(KODI_HANDLE instance, const std::string& kodiVersion)
: CInstanceAudioDecoder(instance, kodiVersion)
{
}
bool CMyInstance::Start()
{
std::string lib = kodi::GetAddonPath("myLib.so");
if (!LoadDll(lib)) return false;
Init();
return true;
}
...
Definition AudioDecoder.h:431
◆ REGISTER_DLL_SYMBOL
#define REGISTER_DLL_SYMBOL |
( |
| functionPtr | ) |
|
◆ CDllHelper()
◆ ~CDllHelper()
◆ LoadDll()
bool 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 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.: