Создайте COM-компонент для развертывания вне MATLAB
Внимание
Эта функция только поддерживается на операционных системах Windows®.
compiler.build.comComponent( создает COM-компонент с помощью функций MATLAB®, заданных Files)Files.
compiler.build.comComponent( создает COM-компонент с дополнительными опциями, заданными с помощью одного или нескольких аргументов значения имени. Опции включают имя класса, выводят директорию и дополнительные файлы, чтобы включать.Files,Name,Value)
compiler.build.comComponent( создает COM-компонент с классом, сопоставляющим заданное использование ClassMap)container.Map объект ClassMap.
compiler.build.comComponent( создает COM-компонент с помощью ClassMap,Name,Value)ClassMap и дополнительные опции задали использование одного или нескольких аргументов значения имени. Опции включают имя компонента, выводят директорию и дополнительные файлы, чтобы включать.
compiler.build.comComponent( создает COM-компонент с опциями, заданными с помощью opts)compiler.build.COMComponentOptions объект opts. Вы не можете задать никакие другие опции с помощью аргументов значения имени.
Создайте 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
Files — Файлы, реализующие функции MATLABФайлы, реализующие функции MATLAB в виде вектора символов, строкового скаляра, массива строк или массива ячеек из символьных векторов. Пути к файлам могут быть относительно текущей рабочей директории или абсолюта. Файлы должны иметь .m расширение.
Пример: ["myfunc1.m","myfunc2.m"]
Типы данных: char | string | cell
ClassMap — Карта классаcontainers.Map объектКарта класса в виде containers.Map объект. Ключи карты являются именами классов, и каждое значение является набором файлов, сопоставленных с соответствующим классом. Файлы должны иметь .m расширение.
Пример: cmap
opts — Опции сборки COM-компонентаcompiler.build.COMComponentOptions объектОпции сборки COM-компонента в виде a compiler.build.COMComponentOptions объект.
Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'EmbedArchive','on''AdditionalFiles' — Дополнительные файлыДополнительные файлы, чтобы включать в COM-компонент в виде вектора символов, строкового скаляра, массива строк или массива ячеек из символьных векторов. Пути к файлам могут быть относительно текущей рабочей директории или абсолюта.
Пример: 'AdditionalFiles',["myvars.mat","data.txt"]
Типы данных: char | string | cell
'AutoDetectDataFiles' — Отметьте, чтобы автоматически включать файлы данных'on' (значение по умолчанию) | логическое значение включения - выключенияОтметьте, чтобы автоматически включать файлы данных в виде 'on' или 'off', или как числовой или логический 1 TRUE) или 0 ложь). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.
Если вы устанавливаете это свойство на 'on', затем файлы данных, которые вы предоставляете как входные параметры определенным функциям (такой как load и fopen) автоматически включены в COM-компонент.
Если вы устанавливаете это свойство на 'off', затем необходимо добавить файлы данных в компонент с помощью AdditionalFiles свойство.
Пример: 'AutoDetectDataFiles','off'
Типы данных: логический
'ClassName' — Имя COM-классаИмя COM-класса в виде вектора символов или строкового скаляра. Вы не можете задать эту опцию, если вы используете ClassMap входной параметр. Имена классов должны совпадать с требованиями имени COM-класса.
Значением по умолчанию является имя первого файла, перечисленного в Files аргумент добавлен с Class.
Пример: 'ClassName','magicsquareClass'
Типы данных: char | string
'ComponentName' — Имя COM-компонентаИмя COM-компонента в виде вектора символов или строкового скаляра. Значение действует как идентификатор программы, который введен в Windows Registry. Имя по умолчанию сгенерированного компонента является первой записью Files аргумент. Имя должно начаться с буквы и содержать только буквенные символы и периоды.
Пример: 'ComponentName','mycomponent'
Типы данных: char | string
'ComponentVersion' — Версия компонента (значение по умолчанию) | вектор символов | строковый скалярВерсия компонента в виде вектора символов или строкового скаляра. Для получения информации об управлении версиями с помощью MATLAB Compiler SDK™ смотрите Управление версиями.
Пример: 'ComponentVersion','4.0'
Типы данных: char | string
'EmbedArchive' — Отметьте, чтобы встроить архив блока'on' (значение по умолчанию) | логическое значение включения - выключенияОтметьте, чтобы встроить архив блока в виде 'on' или 'off', или как числовой или логический 1 TRUE) или 0 ложь). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.
Если вы устанавливаете это свойство на 'on', затем функция встраивает архив блока в COM-компонент.
Если вы устанавливаете это свойство на 'off', затем функция генерирует архив блока как отдельный файл.
Пример: 'EmbedArchive','off'
Типы данных: логический
'OutputDir' — Путь, чтобы вывести директориюПуть к выходной директории, где файлы типа "build" сохранены в виде вектора символов или строкового скаляра. Путь может быть относительно текущей рабочей директории или абсолюта.
Имя по умолчанию папки сборки является именем компонента, добавленным с comComponent.
Пример: 'OutputDir','D:\Documents\MATLAB\work\mycomponentcomComponent'
Типы данных: char | string
'Verbose' — Отметьте, чтобы управлять многословием сборки'off' (значение по умолчанию) | логическое значение включения - выключенияОтметьте, чтобы управлять многословием сборки в виде 'on' или 'off', или как числовой или логический 1 TRUE) или 0 ложь). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.
Если вы устанавливаете это свойство на 'on', затем окно команды MATLAB отображает информацию о прогрессе, указывающую на выход компилятора во время процесса сборки.
Если вы устанавливаете это свойство на 'off', затем командное окно не отображает информацию о прогрессе.
Пример: 'Verbose','on'
Типы данных: логический
results — Создайте результатыcompiler.build.Results объектСоздайте результаты, возвращенные как compiler.build.Results объект. Results объект содержит:
Создайте тип, который является 'comComponent'
Пути к следующим файлам:
ComponentName_ComponentVersion.dll
GettingStarted.html
Создайте опции в виде COMComponentOptions объект
Эта функция только поддерживается на операционных системах Windows.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.