compiler.build.comComponent

Создайте COM-компонент для развертывания вне MATLAB

Описание

пример

Внимание

Эта функция только поддерживается на операционных системах Windows®.

compiler.build.comComponent(Files) создает COM-компонент с помощью функций MATLAB®, заданных Files.

пример

compiler.build.comComponent(Files,Name,Value) создает COM-компонент с дополнительными опциями, заданными с помощью одного или нескольких аргументов значения имени. Опции включают имя класса, выводят директорию и дополнительные файлы, чтобы включать.

пример

compiler.build.comComponent(ClassMap) создает COM-компонент с классом, сопоставляющим заданное использование container.Map объект ClassMap.

пример

compiler.build.comComponent(ClassMap,Name,Value) создает COM-компонент с помощью ClassMap и дополнительные опции задали использование одного или нескольких аргументов значения имени. Опции включают имя компонента, выводят директорию и дополнительные файлы, чтобы включать.

пример

compiler.build.comComponent(opts) создает COM-компонент с опциями, заданными с помощью compiler.build.COMComponentOptions объект opts. Вы не можете задать никакие другие опции с помощью аргументов значения имени.

пример

results = compiler.build.comComponent(___) возвращает информацию о сборке как compiler.build.Results объект с помощью любой из комбинаций аргументов в предыдущих синтаксисах. Информация о сборке состоит из типа сборки, путей к скомпилированным файлам и опций сборки.

Примеры

свернуть все

Создайте COM-компонент в системе Windows с помощью файла функции, который генерирует магический квадрат.

В MATLAB найдите функцию MATLAB, которую вы хотите развернуть как COM-компонент. В данном примере используйте файл magicsquare.m расположенный в matlabroot\extern\examples\compiler.

appFile = fullfile(matlabroot,'extern','examples','compiler','magicsquare.m');

Создайте COM-компонент с помощью compiler.build.comComponent команда.

compiler.build.comComponent(appFile);

Функция сборки создает следующие файлы в папке под названием magicsquarecomComponent в вашей текущей рабочей директории:

  • dlldata.c

  • magicsquare.def

  • magicsquare.rc

  • magicsquare_1_0.dll

  • magicsquare_dll.cpp

  • magicsquare_idl.h

  • magicsquare_idl.idl

  • magicsquare_idl.tlb

  • magicsquare_idl_i.c

  • magicsquare_idl_p.c

  • magicsquareClass_com.cpp

  • magicsquareClass_com.hpp

  • mccExcludedFiles.log

  • mwcomtypes.h

  • mwcomtypes_i.c

  • mwcomtypes_p.c

  • readme.txt

  • requiredMCRProducts.txt

  • unresolvedSymbols.txt

Для примера, показывающего, как интегрировать этот компонент в автономное приложение Microsoft® Visual Basic®, смотрите, Интегрируют Магический квадрат в Приложение COM.

Для получения дополнительной информации о IDL и правилах кодирования C++ для создания COM-объектов и отображений на другие языки, см. документацию Microsoft.

Создайте COM-компонент в системе Windows и настройте его с помощью аргументов значения имени.

В данном примере используйте файл magicsquare.m расположенный в matlabroot\extern\examples\compiler.

appFile = fullfile(matlabroot,'extern','examples','compiler','magicsquare.m');

Создайте COM-компонент с помощью compiler.build.comComponent команда. Используйте аргументы значения имени, чтобы задать имя компонента и версию, добавить MAT-файл и включить многословный выход.

compiler.build.comComponent(appFile,'ComponentName','MyMagicSquare',...
    'ComponentVersion','2.0',...
    'AdditionalFiles','myvars.mat',...
    'Verbose','on');

Для примера, показывающего, как интегрировать этот компонент в автономное приложение Microsoft Visual Basic, смотрите, Интегрируют Магический квадрат в Приложение COM.

Создайте COM-компонент в системе Windows с помощью карты класса и нескольких файлов функции.

Создайте containers.Map возразите, чьи ключи являются именами классов и чьи значения являются местоположениями файлов функции.

cmap = containers.Map;
cmap('Class1') = {'exampleFcn1.m','exampleFcn2.m'};
cmap('Class2') = {'exampleFcn3.m','exampleFcn4.m'};

Создайте COM-компонент с помощью compiler.build.comComponent команда. Используйте аргументы значения имени, чтобы задать имя компонента и версию.

compiler.build.comComponent(cmap,...
    'ComponentName','MyComponent',...
    'ComponentVersion','2.0');

Для примера, показывающего, как интегрировать этот компонент в автономное приложение Microsoft Visual Basic, смотрите, Интегрируют Магический квадрат в Приложение COM.

Создайте несколько COM-компонентов в системе Windows с помощью a compiler.build.COMComponentOptions объект.

В данном примере используйте файл magicsquare.m расположенный в matlabroot\extern\examples\compiler.

appFile = fullfile(matlabroot,'extern','examples','compiler','magicsquare.m');

Создайте COMComponentOptions объект с помощью appFile. Используйте аргументы значения имени, чтобы задать общую выходную директорию, сгенерировать архивы блока отдельно и включить многословный выход.

opts = compiler.build.COMComponentOptions(appFile,...
    'OutputDir','D:\Documents\MATLAB\work\COMComponentBatch',...
    'EmbedArchive','off',...
    'Verbose','on')
opts =

  COMComponentOptions with properties:

            ClassMap: [1×1 containers.Map]
          ComponentName: 'magicsquare'
       ComponentVersion: '1.0.0.0'
           EmbedArchive: off
        AdditionalFiles: {}
    AutoDetectDataFiles: on
                Verbose: on
              OutputDir: 'D:\Documents\MATLAB\work\COMComponentBatch'

   Class Map Information
       magicsquareClass: {'C:\Program Files\MATLAB\R2021a\extern\examples\compiler\magicsquare.m'}

Создайте COM-компонент с помощью COMComponentOptions объект.

compiler.build.comComponent(opts);

Скомпилировать использование файла функции myMagic2.m с теми же опциями используйте запись через точку, чтобы изменить ClassMap из существующего COMComponentOptions объект прежде, чем запустить сборку функционирует снова.

remove(opts.ClassMap, keys(opts.ClassMap));
opts.ClassMap('myMagic2Class') = 'myMagic2.m';
compiler.build.comComponent(opts);

Путем изменения ClassMap аргумент и перекомпиляция, можно создать несколько компонентов с помощью того же объекта опций.

Создайте COM-компонент в системе Windows и сохраните информацию о типе сборки, сгенерированных файлах, и создайте опции к compiler.build.Results объект.

Компиляция с помощью файла magicsquare.m расположенный в matlabroot\extern\examples\compiler.

results = compiler.build.comComponent('magicsquare.m')
results = 

  Results with properties:

            BuildType: 'comComponent'
                Files: {2×1 cell}
              Options: [1×1 compiler.build.COMComponentOptions]

Files свойство содержит пути к следующим скомпилированным файлам:

  • magicsquare_1_0.dll

  • GettingStarted.html

Входные параметры

свернуть все

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

Пример: ["myfunc1.m","myfunc2.m"]

Типы данных: char | string | cell

Карта класса в виде containers.Map объект. Ключи карты являются именами классов, и каждое значение является набором файлов, сопоставленных с соответствующим классом. Файлы должны иметь .m расширение.

Пример: cmap

Опции сборки COM-компонента в виде a compiler.build.COMComponentOptions объект.

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'EmbedArchive','on'

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

Пример: 'AdditionalFiles',["myvars.mat","data.txt"]

Типы данных: char | string | cell

Отметьте, чтобы автоматически включать файлы данных в виде 'on' или 'off', или как числовой или логический 1 TRUE) или 0 ложь). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.

  • Если вы устанавливаете это свойство на 'on', затем файлы данных, которые вы предоставляете как входные параметры определенным функциям (такой как load и fopen) автоматически включены в COM-компонент.

  • Если вы устанавливаете это свойство на 'off', затем необходимо добавить файлы данных в компонент с помощью AdditionalFiles свойство.

Пример: 'AutoDetectDataFiles','off'

Типы данных: логический

Имя COM-класса в виде вектора символов или строкового скаляра. Вы не можете задать эту опцию, если вы используете ClassMap входной параметр. Имена классов должны совпадать с требованиями имени COM-класса.

Значением по умолчанию является имя первого файла, перечисленного в Files аргумент добавлен с Class.

Пример: 'ClassName','magicsquareClass'

Типы данных: char | string

Имя COM-компонента в виде вектора символов или строкового скаляра. Значение действует как идентификатор программы, который введен в Windows Registry. Имя по умолчанию сгенерированного компонента является первой записью Files аргумент. Имя должно начаться с буквы и содержать только буквенные символы и периоды.

Пример: 'ComponentName','mycomponent'

Типы данных: char | string

Версия компонента в виде вектора символов или строкового скаляра. Для получения информации об управлении версиями с помощью MATLAB Compiler SDK™ смотрите Управление версиями.

Пример: 'ComponentVersion','4.0'

Типы данных: char | string

Отметьте, чтобы встроить архив блока в виде 'on' или 'off', или как числовой или логический 1 TRUE) или 0 ложь). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.

  • Если вы устанавливаете это свойство на 'on', затем функция встраивает архив блока в COM-компонент.

  • Если вы устанавливаете это свойство на 'off', затем функция генерирует архив блока как отдельный файл.

Пример: 'EmbedArchive','off'

Типы данных: логический

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

Имя по умолчанию папки сборки является именем компонента, добавленным с comComponent.

Пример: 'OutputDir','D:\Documents\MATLAB\work\mycomponentcomComponent'

Типы данных: char | string

Отметьте, чтобы управлять многословием сборки в виде 'on' или 'off', или как числовой или логический 1 TRUE) или 0 ложь). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.

  • Если вы устанавливаете это свойство на 'on', затем окно команды MATLAB отображает информацию о прогрессе, указывающую на выход компилятора во время процесса сборки.

  • Если вы устанавливаете это свойство на 'off', затем командное окно не отображает информацию о прогрессе.

Пример: 'Verbose','on'

Типы данных: логический

Выходные аргументы

свернуть все

Создайте результаты, возвращенные как compiler.build.Results объект. Results объект содержит:

  • Создайте тип, который является 'comComponent'

  • Пути к следующим файлам:

    • ComponentName_ComponentVersion.dll

    • GettingStarted.html

  • Создайте опции в виде COMComponentOptions объект

Ограничения

  • Эта функция только поддерживается на операционных системах Windows.

Введенный в R2021a