exponenta event banner

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 ® см. в разделе Интеграция Magic Square в 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 см. в разделе Интеграция Magic Square в 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 см. в разделе Интеграция Magic Square в COM-приложение.

Создание нескольких COM-компонентов в системе Windows с помощью 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-компонента, указанные как 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 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.

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

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

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

Типы данных: logical

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

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

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

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

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

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

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

Версия компонента, заданная как вектор символа или скаляр строки. Сведения об управлении версиями с помощью SDK™ компилятора MATLAB см. в разделе Управление версиями.

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

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

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

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

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

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

Типы данных: logical

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

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

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

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

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

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

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

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

Типы данных: logical

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

свернуть все

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

  • Тип построения, который является 'comComponent'

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

    • ComponentName_ComponentVersion.dll

    • GettingStarted.html

  • Параметры построения, указанные как COMComponentOptions объект

Ограничения

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

Представлен в R2021a