Создайте типовой COM-компонент с кодом MATLAB

Поддерживаемая платформа: 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 исследуйте код 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-компонент с помощью приложения Library Compiler. В качестве альтернативы, если вы хотите создать COM-компонент из окна команды MATLAB с помощью программируемого подхода, смотрите.

  1. На вкладке MATLAB Apps, на ультраправом из раздела Apps, кликают по стреле. В Application Deployment нажмите Library Compiler. В окне проекта MATLAB Compiler нажмите Generic COM Component.

    Альтернативно, можно открыть приложение Library Compiler путем ввода libraryCompiler в подсказке MATLAB.

  2. В окне проекта приложения Library Compiler задайте файлы приложения MATLAB, которое вы хотите развернуть.

    1. В разделе Exported Functions панели инструментов щелкнутьAdd exported function to the project.

    2. В окне Add Files просмотрите к папке в качестве примера и выберите функцию, которую вы хотите группировать. Нажмите Open.

    Функция добавляется к списку экспортируемых файлов функции. Повторите этот шаг, чтобы группировать несколько файлов в том же приложении.

  3. В разделе Packaging Options панели инструментов решите, включать ли инсталлятор MATLAB Runtime в сгенерированное приложение путем выбора одной из опций:

    • Runtime downloaded from web — Сгенерируйте инсталлятор, который загружает MATLAB Runtime и устанавливает его наряду с развернутым приложением MATLAB. Можно задать имя файла инсталлятора.

    • Runtime included in package — Сгенерируйте приложение, которое включает инсталлятор MATLAB Runtime. Можно задать имя файла инсталлятора.

      Примечание

      В первый раз, когда вы выбираете эту опцию, вам предлагают загрузить инсталлятор MATLAB Runtime.

  4. В поле Library Name замените makesquare с MagicSquareComp.

  5. Проверьте что функция, определяемая в makesquare.m сопоставлен в Class1.

Настройте приложение и его внешний вид

В приложении Library Compiler можно настроить инсталлятор, настроить приложение и добавить больше информации о приложении.

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

  • Additional installer options — Путь к стандартной установке для сгенерированного инсталлятора и пользовательского выбора логотипа. Смотрите Изменение Путь к Установке.

  • Files required for your library to run — Дополнительные требуемые для запуска сгенерированного приложения файлы. Эти файлы включены в сгенерированное установщиком приложения. Смотрите Управляют Необходимыми Файлами в Проекте Компилятора.

  • Files installed for your end user — Файлы, которые установлены с вашим приложением.

    Смотрите задают файлы, чтобы установить с приложением.

Группируйте приложение

По окончании выбрав ваши упаковочные опции, сохраняете свой проект Library Compiler и генерируете пакетное приложение.

  1. Нажмите Package.

    В диалоговом окне Save Project задайте местоположение, чтобы сохранить проект.

  2. В диалоговом окне Package проверьте, что Open output folder when process completes выбран.

    Когда упаковочный процесс будет завершен, исследуйте сгенерированный выход в целевой папке.

    • Сгенерированы три папки: for_redistribution, for_redistribution_files_only, и for_testing.

      Для получения дополнительной информации о файлах, сгенерированных в этих папках, смотрите Файлы, Сгенерированные После Упаковки функций MATLAB.

    • Файл журнала PackagingLog.html содержит упаковочные результаты.

Создайте COM-компонент Используя compiler.build.COMComponent

Как альтернатива приложению Library Compiler, можно создать COM-компонент с помощью программируемого подхода с помощью следующих шагов. Если вы уже создали компонент с помощью Library Compiler, смотрите, Объединяются в Приложение COM.

  1. Сохраните путь к файлу makesquare.m расположенный в matlabroot\toolbox\dotnetbuilder\Examples\VSVersion\COM\MagicSquareExample\MagicSquareComp. Например, если вы используете версию 15 Visual Studio, введите:

    appFile = fullfile(matlabroot,'toolbox','dotnetbuilder','Examples',...
        'VS15','COM','MagicSquareExample','MagicSquareComp','makesquare.m');
  2. Создайте 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

Чтобы интегрировать ваш COM-компонент в приложение, смотрите Создание Проекта Microsoft Visual Basic.

Смотрите также

| |

Похожие темы