libdspl-2.0
Библиотека алгоритмов цифровой обработки сигналов
Функции динамического связывания библиотеки DSPL-2.0

Функции

void * dspl_load ()
 Произвести динамическую линковку и загрузить функции DSPL-2.0. Подробнее...
 
void dspl_free (void *handle)
 Очищает связанную ранее динамическую библиотеку DSPL-2.0. Подробнее...
 

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


В данной группе описаны функции динамической линковки библиотеки в приложениях пользователя. Данные функции являются кроссплатформенными и обеспечивают единый интерфейс динамического связывания в Linux и Windows.

Функции

◆ dspl_free()

void dspl_free ( void *  handle)

Очищает связанную ранее динамическую библиотеку DSPL-2.0.


Данная кроссплатформенная функция производит очистку библиотеки libdspl.dll в системе Windows и с библиотеки libdspl.so в системе Linux. После очистки библиотеки все функции станут недоступны.

Аргументы
[in]handleХэндл прилинкованной ранее библиотеки DSPL-2.0.
Данный указатель может быть NULL, в этом случае никакие действия не производятся.
Автор
Бахурин Сергей www.dsplib.org

◆ dspl_load()

void * dspl_load ( )

Произвести динамическую линковку и загрузить функции DSPL-2.0.


Данная функция производит попытку связывания с библиотекой libdspl.dll в системе Windows и с библиотекой libdspl.so в системе Linux. Предполагается, что библиотека находится в одной директории с приложением пользователя, или путь к библиотеке прописан в переменных пути операционной системы.

При удачном связывании и загрузке функций библиотеки возвращается хэндл библиотеки, а также в адресном пространстве приложения появляются указатели на функции DSPL-2.0.

Заметки
Возвращаемый хэндл имеет тип void*, который в ОС Windows может быть приведен к типу HINSTANCE. На практике необходимости в этом, нет, потому что данный тип приводится к HINSTANCE автоматически, если выставлен флаг компилятора, указывающий, что сборка приложения производится в ОС Windows.

Пример простейшей программы реализующей динамическое связывание с DSPL-2.0.

#include <stdio.h>
#include <stdlib.h>
#include "dspl.h"
int main(int argc, char* argv[])
{
void* hdspl; /* DSPL хэндл */
hdspl = dspl_load(); /* Динамическая линковка */
/* Проверяем указатель. Если `NULLL`, то линковка прошла неудачно */
if(!hdspl)
{
printf("libdspl loading error!\n");
return -1;
}
/*
Линковка прошла успешно можно вызывать функции DSPL-2.0
*/
/*
Перед корректным завершением приложения необходимо разлинковать
библиотеку и очистить память.
*/
dspl_free(hdspl);
return 0;
}
Автор
Бахурин Сергей www.dsplib.org