exponenta event banner

Пакет COM-компонентов из командной строки

Компоненты COM можно упаковать по запросу MATLAB ® или системному запросу с помощью любой из этих команд.

  • deploytool вызывает приложение Application Compiler для выполнения сохраненного проекта компилятора.

  • mcc вызывает Compiler™ MATLAB для создания развертываемого приложения в командной строке.

Выполнение проектов компилятора с помощью deploytool

deploytool имеет два флага, которые вызывают одно из приложений компилятора для упаковки уже существующего проекта без открытия окна.

  • -build project_name - Вызовите правильное приложение компилятора для построения проекта, но не создайте программу установки.

  • -package project_name - Вызовите правильное приложение компилятора для построения проекта и создания программы установки.

Например, deploytool -package magicsquare генерирует двоичные файлы, определенные magicsquare и упаковывает их в установщик, который можно распространять среди других пользователей.

Создание COM-компонента с помощью mcc

mcc вызывает компилятор MATLAB для создания COM-компонента в командной строке и обеспечивает управление тонким уровнем при упаковке компонента. Он не упаковывает результаты в программу установки.

Класс MATLAB не может быть непосредственно упакован в COM-объект. Однако можно использовать созданный пользователем класс внутри файла MATLAB и построить из него COM-объект. Для создания COM-объектов можно использовать интерфейс командной строки MATLAB вместо приложения компилятора библиотеки. Сделайте это, выдав mcc с опциями. Если вы используете mcc, проект не создается.

В следующей таблице представлен обзор некоторых mcc параметры, относящиеся к компонентам, а также синтаксис и примеры их использования.

Действие для выполненияОписание
Создайте компонент, имеющий один класс.

mcc параметр для использования: -W com

W вариант с com как тип управляет созданием файлов оболочки, которые можно использовать для поддержки компонентов.

Синтаксис

mcc -W 'com:<component_name>[,<class_name>[,<major>.<minor>]]'

Неуказанное <class_name> по умолчанию: <component_name>и неопределенный номер версии по умолчанию соответствует последней версии built или 1.0, если нет предыдущей версии.

Пример

mcc -W 'com:mycomponent,myclass,1.0' -T link:lib foo.m bar.m

В примере создается COM-компонент с именем mycomponent, который содержит один COM-класс с именем myclass с методами foo и barи версия 1.0.

Добавление дополнительных классов к COM-компоненту.

mcc опция для использования: Не требуется

Отдельный COM с именем <class_name> создается для каждого переданного аргумента класса.

После <class_name> параметр представляет собой разделенный запятыми список исходных файлов, инкапсулированных в качестве методов для класса.

Синтаксис

class{<class_name>:[file, [file,...]]}

Пример

mcc -B 'com:mycomponent,myclass,1.0' foo.m bar.m class{myclass2:foo2.m, bar2.m}

В примере создается COM-компонент с именем mycomponent с двумя классами: myclass имеет методы foo и bar, и myclass2 имеет методы foo2 и bar2. Версия - версия 1.0.

Упрощение ввода командной строки для компонентов.

mcc параметр для использования: -B com:

Использует пучок.

Синтаксис

mcc -B '<bundle>'[:<a1>,<a2>,...,<an>]

Пример

mcc -B 'com:mycomponent,myclass,1.0' foo.m bar.m

Управление тем, как каждый COM-класс использует среду выполнения MATLAB.

mcc параметр для использования: -S

По умолчанию для каждого экземпляра каждого COM-класса в компоненте создается новый экземпляр среды выполнения MATLAB. Использовать -S для изменения значения по умолчанию.

Этот параметр позволяет компилятору создать одну среду выполнения MATLAB во время создания экземпляра первого COM-класса. Эта среда выполнения MATLAB используется повторно и совместно используется всеми последующими экземплярами классов, что позволяет повысить эффективность использования памяти и исключить затраты на запуск среды выполнения MATLAB в каждом последующем экземпляре класса.

При использовании -S, обратите внимание, что все экземпляры классов совместно используют одну рабочую область MATLAB и совместно используют глобальные переменные в файлах MATLAB, используемых для построения компонента. Поэтому свойства COM-класса ведут себя как статические свойства, а не как свойства экземпляра.

Примечание

Поведение по умолчанию требует создания новой среды выполнения MATLAB для каждого экземпляра класса, поэтому при уничтожении класса среда выполнения MATLAB также уничтожается. Если требуется сохранить состояние глобальных переменных (например, назначенных чертежным фигурам), используйте -S вариант.

Пример

mcc -S -B 'com:mycomponent,myclass,1.0' foo.m bar.m

В примере создается COM-компонент с именем mycomponent содержащий один COM-класс с именем myclass с методами foo и barи версия 1.0.

При создании в приложении нескольких экземпляров этого класса инициализируется только одна среда выполнения MATLAB, которая используется каждым экземпляром.

Создайте подпапки, необходимые для развертывания, и скопируйте в них связанные файлы.

mcc параметр для использования: -d

\src и \distrib вложенные папки используются для упаковки компонентов.

Синтаксис

-d foldername

Различия между приложениями компилятора и командной строкой

Вы выполняете те же функции, используя приложения компилятора, compiler.build функции или mcc интерфейс командной строки. Интерактивные меню и диалоговые окна, используемые при построении приложений компилятора mcc команды, настроенные в соответствии со спецификацией. Таким образом, код MATLAB обрабатывается так же, как если бы он был упакован с помощью mcc.

Если вы знаете команды для типа приложения, которое вы хотите развернуть, и не требуете программу установки, это быстрее выполнить либо compiler.build или mcc чем перейти к рабочему процессу приложения компилятора.

Преимущества приложения компилятора:

  • Связанные задачи развертывания можно выполнять с помощью единого интуитивно понятного интерфейса.

  • Соответствующую информацию можно вести в удобном файле проекта.

  • Состояние проекта сохраняется между сеансами.

  • Предварительно сохраненные проекты компилятора можно загрузить из предварительно заполненного меню.

  • Можно упаковывать приложения для распространения.

См. также

|

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