ComSDK
 Указатель Классы Пространства имен Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Группы Страницы
Классы | Функции
Пространство имен com::lib

Средства для загрузки данных из библиотек Подробнее...

Классы

class  DllLoader
 Класс для загрузки библиотек и получения объектов из них Подробнее...
 

Функции

template<class TDllHandle >
int loadLibrary (const std::string &p_dllname, TDllHandle &o_dll)
 
template<class FunctionType , class TDllHandle >
FunctionType * loadFunction (TDllHandle p_dll, const std::string &p_regfunc)
 
template<class FunctionType , class TDllHandle >
FunctionType * loadFunction (const std::string &p_dllname, const std::string &p_regfunc, TDllHandle &o_dll)
 
template<class TDllHandle >
void unloadLibrary (TDllHandle p_dll)
 
template<class OutClass >
OutClass * registerObject (void *p_func, const std::string &p_input_file="")
 
template<class OutClass , class TDllHandle >
OutClass * registerObject (const std::string &p_dllname, const std::string &p_regfunc, TDllHandle &o_dll, const std::string &p_input_file="")
 
template<class OutClass , class InputParam , class TDllHandle >
OutClass * registerQualifiedObject (const std::string &p_dllname, const std::string &p_regfunc, TDllHandle &o_dll, const InputParam &p_input_data)
 
template<class OutClass , class TDllHandle >
void unregisterObject (OutClass *p_obj, TDllHandle p_dll)
 

Подробное описание

Средства для загрузки данных из библиотек

Средства для загрузки данных из библиотек и их функций, создание объектов из классов библиотек с помощью специальных стандартных функций. Также в нем объявлены макросы MAC_DLLEXPORT и MAC_DLLEXPORT_FROMEXE, которые должны использоваться при создании плагинов и экспортируемых функций в исполняемых файлах, и кроссплатформенный тип для идентификаторов библиотек DllHandle.

Функции

template<class FunctionType , class TDllHandle >
FunctionType* com::lib::loadFunction ( TDllHandle  p_dll,
const std::string &  p_regfunc 
)

Динамически загружает функцию из уже загруженной разделяемой библиотеки.

Аргументы
[in]p_regfuncИмя загружаемой функции
[out]o_dllИдентификатор библиотеки
Возвращает
Указатель на выгруженную функцию
template<class FunctionType , class TDllHandle >
FunctionType* com::lib::loadFunction ( const std::string &  p_dllname,
const std::string &  p_regfunc,
TDllHandle &  o_dll 
)

Динамически загружает функцию из разделяемой библиотеки.

Аргументы
[in]p_dllnameИмя библиотеки
[in]p_regfuncИмя загружаемой функции
[out]o_dllИдентификатор библиотеки
Возвращает
Указатель на выгруженную функцию
Необходимо сделать:
обработать исключения
template<class TDllHandle >
int com::lib::loadLibrary ( const std::string &  p_dllname,
TDllHandle &  o_dll 
)

Динамически загружает разделяемую библиотеку.

Аргументы
[in]p_dllnameИмя библиотеки
[out]o_dllИдентификатор библиотеки
Возвращает
Код ошибки
Необходимо сделать:
Доделать проверку имени библиотеки (абсолютный путь не работает + windows-case не работает)
Необходимо сделать:
определить правильный код ошибки!
template<class OutClass >
OutClass* com::lib::registerObject ( void *  p_func,
const std::string &  p_input_file = "" 
)

Загружает объекта класса OutClass из функции.

Аргументы
[in]p_funcУказатель на загруженную функцию, возвращающую объект
[in]p_input_fileИмя файла, которое будет передано как параметр функции
Возвращает
Указатель на загруженный объект
template<class OutClass , class TDllHandle >
OutClass* com::lib::registerObject ( const std::string &  p_dllname,
const std::string &  p_regfunc,
TDllHandle &  o_dll,
const std::string &  p_input_file = "" 
)

Загружает объекта класса OutClass из функции, находящейся в разделяемой библиотеке.

Аргументы
[in]p_dllnameИмя библиотеки
[in]p_regfuncИмя загружаемой функции
[out]o_dllИдентификатор библиотеки
[in]p_input_fileИмя файла, которое будет передано как параметр функции
Возвращает
Указатель на загруженный объект
Необходимо сделать:
обработать исключения
template<class OutClass , class InputParam , class TDllHandle >
OutClass* com::lib::registerQualifiedObject ( const std::string &  p_dllname,
const std::string &  p_regfunc,
TDllHandle &  o_dll,
const InputParam &  p_input_data 
)

Загружает объекта класса OutClass из функции, находящейся в разделяемой библиотеке. Позволяет передать параметр по шаблону InputParam

Аргументы
[in]p_dllnameИмя библиотеки
[in]p_regfuncИмя загружаемой функции
[out]o_dllИдентификатор библиотеки
[in]p_input_dataОбъект шаблонного типа InputParam, который будет передан как параметр функции
Возвращает
Указатель на загруженный объект
template<class TDllHandle >
void com::lib::unloadLibrary ( TDllHandle  p_dll)

Выгружает загруженную библиотеку.

Аргументы
[in]p_dllИдентификатор библиотеки
template<class OutClass , class TDllHandle >
void com::lib::unregisterObject ( OutClass *  p_obj,
TDllHandle  p_dll 
)

Выгружает загруженный из разделяемой библиотеки объект.

Аргументы
[in]p_objВыгружаемый объект
[in]o_dllИдентификатор библиотеки