Поддерживаемая платформа: 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