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()
{
if (!LoadDll(lib)) return false;
Init();
return true;
}
...
Definition: AudioDecoder.h:382
std::string ATTRIBUTE_HIDDEN GetAddonPath(const std::string &append="")
To get the addon system installation folder.
Definition: AddonBase.h:649
◆ REGISTER_DLL_SYMBOL
◆ 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()
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.: