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

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

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

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

    loadlibrary(library, header)

    Запустите следующую команду в MATLAB только однажды, чтобы создать прототипный файл:

    loadlibrary(library, header, 'mfilename', 'mylibrarymfile'); 
    Это создает mylibrarymfileM в текущей папке. Если вы находитесь на 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 в ваше скомпилированное приложение.

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

Примечание

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

Примечание

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

Смотрите также

Похожие темы