exponenta event banner

Вызов общих библиотек в развернутых приложениях

loadlibrary функция в MATLAB ® позволяет загружать общую библиотеку в MATLAB.

Загрузка библиотек с использованием файлов заголовков не поддерживается в скомпилированных приложениях. Поэтому для создания приложения, использующего loadlibrary с заголовочным файлом выполните следующие действия:

  1. Создайте прототип файла MATLAB. Предположим, что вы звоните loadlibrary со следующим синтаксисом.

    loadlibrary(library, header)

    Выполните следующую команду в MATLAB только один раз для создания файла прототипа:

    loadlibrary(library, header, 'mfilename', 'mylibrarymfile'); 
    Это создает mylibrarymfile.m в текущей папке. Если вы используете Windows ®, другой файл с именемlibrary_thunk_pcwin64.dll также создается в текущей папке.

  2. Изменение вызова на loadlibrary в MATLAB для следующего:

    loadlibrary(library, @mylibrarymfile)

  3. Скомпилировать и развернуть приложение.

    • При интеграции библиотеки в развернутое приложение укажите библиотеку .dll вместе с library_thunk_pcwin64.dll, при создании с использованием -a вариант mcc команда. При использовании приложений Application Compiler или Library Compiler добавьте .dll файлы в разделе Файлы, необходимые для запуска приложения.

    • Если библиотека предоставляется как внешний файл, не интегрированный с развернутым приложением, разместите библиотеку .dll в той же папке, что и скомпилированное приложение. Если вы используете Windows, необходимо интегрировать library_thunk_pcwin64.dll в скомпилированное приложение.

      Преимущество этого подхода заключается в том, что библиотеку можно заменить обновленной версией без повторной компиляции развернутого приложения. Замена библиотеки другой версией работает только в том случае, если сигнатуры функций в библиотеке не изменены. Это потому, что mylibrarymfile.m и library_thunk_pcwin64.dll привязаны к сигнатурам функций в библиотеке.

Примечание

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

Примечание

Операционные системы имеют loadlibrary , которая загружает указанный модуль операционной системы Windows в адресное пространство вызывающего процесса.

См. также

Связанные темы