Создайте COM-компонент для развертывания вне MATLAB
Внимание
Эта функция только поддерживается на Windows® операционные системы.
compiler.build.comComponent(
создает COM-компонент с помощью MATLAB® функции заданы Files
)Files
.
compiler.build.comComponent(
создает COM-компонент с дополнительными опциями, заданными с помощью одних или нескольких аргументов name-value. Опции включают имя класса, выводят директорию и дополнительные файлы, чтобы включать.Files
,Name,Value
)
compiler.build.comComponent(
создает COM-компонент с классом, сопоставляющим заданное использование ClassMap
)container.Map
объект ClassMap
.
compiler.build.comComponent(
создает COM-компонент с помощью ClassMap
,Name,Value
)ClassMap
и дополнительные опции задали использование одних или нескольких аргументов name-value. Опции включают имя компонента, выводят директорию и дополнительные файлы, чтобы включать.
compiler.build.comComponent(
создает COM-компонент с опциями, заданными с помощью opts
)compiler.build.COMComponentOptions
объект opts
. Вы не можете задать никакие другие опции с помощью аргументов name-value.
Создайте COM-компонент в системе Windows с помощью файла функции, который генерирует магический квадрат.
Убедитесь, что у вас есть установленное следующее:
Набор Windows 10 SDK. Для получения дополнительной информации смотрите Windows 10 SDK.
MinGW-w64. Чтобы установить его от MathWorks File Exchange, смотрите Поддержку MATLAB Компилятора C/C++ MinGW-w64.
Используйте mbuild -setup -client mbuild_com
гарантировать, что MATLAB может создать COM-компоненты.
В 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
— C файл исходного кода, который содержит точки входа и структуры данных, требуемые фабрикой классов для DLL.
GettingStarted.html
— Файл HTML, который содержит шаги при установке COM-компонентов.
includedSupportPackages.txt
— Текстовый файл, который перечисляет все файлы поддержки, включенные в компонент.
magicsquare.def
— Файл определения модуля, который задает который функции включать в таблицу экспорта DLL.
magicsquare.rc
— Файл скрипта ресурса, который описывает ресурсы, используемые компонентом.
magicsquare_1_0.dll
— Файл динамически подключаемой библиотеки.
magicsquare_dll.cpp
— Файл исходного кода C++, который содержит функции помощника.
magicsquare_idl.h
— Заголовочный файл C++.
magicsquare_idl.idl
— Файл языка определения интерфейсов.
magicsquare_idl.tlb
— Файл библиотеки типов, который содержит информацию о свойствах COM-объекта и методах.
magicsquare_idl_i.c
— C файл исходного кода, который содержит IIDs и CLSIDs для интерфейса IDL.
magicsquare_idl_p.c
— C файл исходного кода, который содержит тупиковый код прокси для интерфейса IDL.
magicsquareClass_com.cpp
— Файл исходного кода C++, который задает класс.
magicsquareClass_com.hpp
— Заголовочный файл C++, который задает класс.
mccExcludedFiles.log
— Файл журнала, который содержит список любых функций тулбокса, которые не были включены в приложение. Для получения информации о неподдерживаемых функциях смотрите Ограничения MATLAB Compiler.
mwcomtypes.h
— Заголовочный файл C++, который содержит определения для интерфейсов.
mwcomtypes_i.c
— C файл исходного кода, который содержит IIDs и CLSIDs.
mwcomtypes_p.c
— C файл исходного кода, который содержит тупиковый код прокси.
readme.txt
— Текстовый файл, который содержит информацию о развертывании.
requiredMCRProducts.txt
— Текстовый файл, который содержит идентификаторы продукта продуктов, требуемых MATLAB Runtime запустить приложение.
unresolvedSymbols.txt
— Текстовый файл, который содержит информацию о неразрешенных символах.
Для примера, показывающего, как интегрировать этот компонент в автономную Microsoft® Visual Basic® приложение, смотрите, Интегрируют Магический квадрат в Приложение COM.
Для получения дополнительной информации о IDL и правилах кодирования C++ для создания COM-объектов и отображений на другие языки, см. документацию Microsoft.
Создайте COM-компонент в системе Windows и настройте его с помощью аргументов name-value.
В данном примере используйте файлы flames.m
и flames.mat
расположенный в
.matlabroot
\extern\examples\compiler
appFile = fullfile(matlabroot,'extern','examples','compiler','flames.m'); MATFile = fullfile(matlabroot,'extern','examples','compiler','flames.mat');
Создайте COM-компонент с помощью compiler.build.comComponent
команда. Используйте аргументы name-value, чтобы задать имя компонента и версию, добавить MAT-файл и включить многословный выход.
compiler.build.comComponent(appFile,'ComponentName','MyFlames',... 'ComponentVersion','2.0',... 'AdditionalFiles',MATFile,... 'Verbose','on');
Для примера, показывающего, как интегрировать этот компонент в автономное приложение Microsoft Visual Basic, смотрите, Интегрируют Магический квадрат в Приложение COM.
Создайте COM-компонент в системе Windows с помощью карты класса и нескольких файлов функции.
Создайте containers.Map
возразите, чьи ключи являются именами классов и чьи значения являются местоположениями файлов функции.
cmap = containers.Map; cmap('Class1') = {'exampleFcn1.m'}; cmap('Class2') = {'exampleFcn2.m','exampleFcn3.m'};
Создайте COM-компонент с помощью compiler.build.comComponent
команда. Используйте аргументы name-value, чтобы задать имя компонента и версию.
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
. Используйте аргументы name-value, чтобы задать общую выходную директорию, сгенерировать архивы блока отдельно и включить многословный выход.
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
SupportPackages: {'autodetect'}
Verbose: on
OutputDir: 'D:\Documents\MATLAB\work\COMComponentBatch'
Class Map Information
magicsquareClass: {'C:\Program Files\MATLAB\R2021b\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} IncludedSupportPackages: {} 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
SupportPackages
— Пакеты поддержки'autodetect'
(значение по умолчанию) | 'none'
| строковый скаляр | массив ячеек из символьных векторов | массив строкПакеты поддержки, чтобы включать в виде одной из следующих опций:
'autodetect'
(значение по умолчанию) — Процесс анализа зависимостей обнаруживает и включает необходимые пакеты поддержки автоматически.
'none'
— Никакие пакеты поддержки не включены. Используя эту опцию может вызвать ошибки периода выполнения.
Строковый скаляр, вектор символов или массив ячеек из символьных векторов — Только заданные пакеты поддержки включены. Чтобы перечислить установленные пакеты поддержки или используемых определенным файлом, смотрите compiler.codetools.deployableSupportPackages
.
.
Пример: 'SupportPackages',{'Deep Learning Toolbox Converter for TensorFlow Models','Deep Learning Toolbox Model for Places365-GoogLeNet Network'}
Типы данных: char |
string
| cell
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.