Поддерживаемая платформа: Windows®
В этом примере показано, как создать типовой COM-компонент с помощью MATLAB® функционируйте и интегрируйте его в приложение. Целевая система не требует лицензированной копии MATLAB.
Проверьте, что вам установили набор Windows 10 SDK. Для получения дополнительной информации смотрите Windows 10 SDK.
Проверьте, что у вас есть установленный MinGW-w64. Чтобы установить его от MathWorks File Exchange, смотрите Поддержку MATLAB Компилятора C/C++ MinGW-w64.
Чтобы гарантировать, что MATLAB обнаруживает набор Windows 10 SDK и MinGW-w64, используйте следующую команду:
mbuild -setup -client mbuild_com
Проверьте, что у вас есть Microsoft® Visual Studio® установленный.
У конечных пользователей должна быть установка MATLAB Runtime, чтобы запустить приложение. Для получения дополнительной информации смотрите Установку и Сконфигурируйте MATLAB Runtime.
Для тестирования можно использовать установку MATLAB вместо MATLAB Runtime.
В MATLAB исследуйте код MATLAB, который вы хотите упакованный. В данном примере открытый makesquare.m расположенный в .matlabroot\toolbox\dotnetbuilder\Examples\VSVersion\COM\MagicSquareExample\MagicSquareComp
function y = makesquare(x)
y = magic(x);В командной строке MATLAB введите makesquare(5).
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9Группируйте функцию в COM-компонент с помощью приложения Library Compiler. В качестве альтернативы, если вы хотите создать COM-компонент из окна команды MATLAB с помощью программируемого подхода, смотрите.
На вкладке MATLAB Apps, на ультраправом из раздела Apps, кликают по стреле. В Application Deployment нажмите Library Compiler. В окне проекта MATLAB Compiler нажмите Generic COM Component.

Альтернативно, можно открыть приложение Library Compiler путем ввода libraryCompiler в подсказке MATLAB.
В окне проекта приложения Library Compiler задайте файлы приложения MATLAB, которое вы хотите развернуть.
В разделе Exported Functions панели инструментов щелкнуть
.
В окне Add Files просмотрите к папке в качестве примера и выберите функцию, которую вы хотите группировать. Нажмите Open.
Функция добавляется к списку экспортируемых файлов функции. Повторите этот шаг, чтобы группировать несколько файлов в том же приложении.
В разделе Packaging Options панели инструментов решите, включать ли инсталлятор MATLAB Runtime в сгенерированное приложение путем выбора одной из опций:
Runtime downloaded from web — Сгенерируйте инсталлятор, который загружает MATLAB Runtime и устанавливает его наряду с развернутым приложением MATLAB. Можно задать имя файла инсталлятора.
Runtime included in package — Сгенерируйте приложение, которое включает инсталлятор MATLAB Runtime. Можно задать имя файла инсталлятора.
Примечание
В первый раз, когда вы выбираете эту опцию, вам предлагают загрузить инсталлятор MATLAB Runtime.
В поле Library Name замените makesquare с MagicSquareComp.
Проверьте что функция, определяемая в makesquare.m сопоставлен в Class1.

В приложении Library Compiler можно настроить инсталлятор, настроить приложение и добавить больше информации о приложении.
Информация о библиотеке Информация о развертываемом приложении. Можно также настроить внешний вид приложения путем изменения значка приложения и экрана-заставки. Сгенерированный установщик использует эту информацию, чтобы заполнить установленные метаданные приложений. Смотрите Настраивают Инсталлятор.
Additional installer options — Путь к стандартной установке для сгенерированного инсталлятора и пользовательского выбора логотипа. Смотрите Изменение Путь к Установке.
Files required for your library to run — Дополнительные требуемые для запуска сгенерированного приложения файлы. Эти файлы включены в сгенерированное установщиком приложения. Смотрите Управляют Необходимыми Файлами в Проекте Компилятора.
Files installed for your end user — Файлы, которые установлены с вашим приложением.
Additional runtime settings — Специфичные для платформы опции для управления сгенерированным исполняемым файлом. Смотрите Дополнительные Настройки Во время выполнения.

По окончании выбрав ваши упаковочные опции, сохраняете свой проект Library Compiler и генерируете пакетное приложение.
Нажмите Package.
В диалоговом окне Save Project задайте местоположение, чтобы сохранить проект.
В диалоговом окне Package проверьте, что Open output folder when process completes выбран.
Когда упаковочный процесс будет завершен, исследуйте сгенерированный выход в целевой папке.
Сгенерированы три папки: for_redistribution, for_redistribution_files_only, и for_testing.
Для получения дополнительной информации о файлах, сгенерированных в этих папках, смотрите Файлы, Сгенерированные После Упаковки функций MATLAB.
Файл журнала PackagingLog.html содержит упаковочные результаты.
compiler.build.COMComponentКак альтернатива приложению Library Compiler, можно создать COM-компонент с помощью программируемого подхода с помощью следующих шагов. Если вы уже создали компонент с помощью Library Compiler, смотрите, Объединяются в Приложение COM.
Сохраните путь к файлу makesquare.m расположенный в . Например, если вы используете версию 15 Visual Studio, введите:matlabroot\toolbox\dotnetbuilder\Examples\VSVersion\COM\MagicSquareExample\MagicSquareComp
appFile = fullfile(matlabroot,'toolbox','dotnetbuilder','Examples',... 'VS15','COM','MagicSquareExample','MagicSquareComp','makesquare.m');
Создайте COM-компонент с помощью compiler.build.comComponent функция. Используйте аргументы name-value, чтобы задать имя компонента и имя класса.
buildResults = compiler.build.comComponent(appFile,... 'ComponentName','MagicSquareComp',... 'ClassName','Class1');
compiler.build.Results объект buildResults содержит информацию о типе сборки, сгенерированных файлах и опциях сборки.
Функция генерирует следующие файлы в папке под названием MagicSquareCompcomComponent в вашей текущей рабочей директории:
magicsquare.def
magicsquare.rc
magicsquare_1_0.dll
readme.txt
requiredMCRProducts.txt
unresolvedSymbols.txt
Class1_com.cpp — Файл исходного кода C++, который задает класс.
Class1_com.hpp — Заголовочный файл C++, который задает класс.
dlldata.c — C файл исходного кода, который содержит точки входа и структуры данных, требуемые фабрикой классов для DLL.
GettingStarted.html — Файл HTML, который содержит шаги при установке COM-компонентов.
includedSupportPackages.txt — Текстовый файл, который содержит информацию о включенных пакетах поддержки.
MagicSquareComp.def — Файл определения модуля, который задает который функции включать в таблицу экспорта DLL.
MagicSquareComp.rc — Файл скрипта ресурса, который описывает ресурсы, используемые компонентом.
MagicSquareComp_1_0.dll — Файл динамически подключаемой библиотеки.
MagicSquareComp_dll.cpp — Файл исходного кода C++, который содержит функции помощника.
MagicSquareComp_idl.h — Заголовочный файл C++.
MagicSquareComp_idl.idl — Файл языка определения интерфейсов.
MagicSquareComp_idl.tlb — Файл библиотеки типов, который содержит информацию о свойствах COM-объекта и методах.
MagicSquareComp_idl_i.c — C файл исходного кода, который содержит IIDs и CLSIDs для интерфейса IDL.
MagicSquareComp_idl_p.c — C файл исходного кода, который содержит тупиковый код прокси для интерфейса IDL.
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 — Текстовый файл, который содержит информацию о неразрешенных символах.
Примечание
Сгенерированный блок не включает MATLAB Runtime или инсталлятор. Создать инсталлятор, использующий buildResults возразите, смотрите compiler.package.installer.
Можно задать дополнительные опции в compiler.build команда при помощи одного или нескольких следующих аргументов name-value:
'AdditionalFiles' — Путь к дополнительным файлам, чтобы включать в компонент.
'AutoDetectDataFiles' — Отметьте, чтобы автоматически включать файлы данных.
'ClassName' — Имя COM-класса.
'ComponentName'— Имя сгенерированного компонента.
'ComponentVersion'— Версия сгенерированного компонента.
'EmbedArchive'— Отметьте, чтобы встроить архив блока.
'OutputDir' — Путь к выходной директории, которая содержит сгенерированные файлы.
'Verbose'— Отметьте, чтобы отобразить информацию о прогрессе, указывающую на выход компилятора во время процесса сборки.
Чтобы интегрировать ваш COM-компонент в приложение, смотрите Создание Проекта Microsoft Visual Basic.
libraryCompiler | mcc | deploytool