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

The 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 файлы в Files required for your application to run раздел приложения.

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

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

Примечание

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

Примечание

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

См. также

Похожие темы