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

Функции

void * dspl_load ()
 Произвести динамическую линковку и загрузить функции libdspl-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 ( )

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


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

При удачном связывании и загрузке функций библиотеки возвращается хэндл библиотеки, а также в адресном пространстве приложения появляются указатели на функции libdspl-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(); // Динамическая линковка
// Проверяем указатель. Если `NULL`, то линковка прошла неудачно
if(!hdspl)
{
printf("libdspl loading error!\n");
return -1;
}
// Линковка прошла успешно можно вызывать функции DSPL-2.0
// Перед корректным завершением приложения необходимо разлинковать
// библиотеку и очистить память.
dspl_free(hdspl);
return 0;
}
void * dspl_load()
Произвести динамическую линковку и загрузить функции libdspl-2.0.
void dspl_free(void *handle)
Очищает связанную ранее динамическую библиотеку DSPL-2.0.
Автор
Бахурин Сергей. www.dsplib.org