Должен ли я получить доступ к библиотеке C из Matlab через `loadlibrary` или через MEX-файл? - PullRequest
0 голосов
/ 25 апреля 2019

Мне нужно использовать общую библиотеку (DLL), разработанную на C из MATLAB, и мне интересно, в чем разница между использованием функции loadlibrary и реализацией функций из библиотеки C в MEX-файле?

1 Ответ

2 голосов
/ 25 апреля 2019

Функция loadlibray позволяет вам вызывать функции из существующей библиотеки C через интерфейс сторонних функций. Файловые функции MEX , напротив, представляет собой механизм написания функций на C (или C ++, Fortran), которые можно вызывать так же, как обычные функции Matlab.

Теперь один типичный шаблон использования - этонаписать функции MEX, которые обернуть существующие функции C из чужой библиотеки (и связать эти файлы MEX с библиотекой).Это требует некоторой работы и осторожности, потому что вам придется написать функцию-обертку на C самостоятельно.Полезной отправной точкой для этого является timestwo пример .

Но если все, что вам нужно, это вызвать конкретную функцию из вашей библиотеки C, и не требуется прерывистое преобразование данных ввода / вывода,loadlibrary путь, вероятно, легче.

...