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\примеры\компилятор.

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

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

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

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

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

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 с помощью compiler.build.COMComponentOptions объект.

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

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\примеры\компилятор.

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

  Results with properties:

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

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

  • magicsquare_1_0.dll

  • GettingStarted.html

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

свернуть все

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

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

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

Карта классов, заданная как containers.Map объект. Ключи 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. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

  • Тип сборки, который 'comComponent'

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

    • ComponentName_ ComponentVersion.dll

    • GettingStarted.html

  • Опции сборки, заданные как COMComponentOptions объект

Ограничения

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

Введенный в R2021a