主要内容

从命令行打包COM组件

你可以在MATLAB中封装COM组件®提示符或使用这些命令中的任何一个的系统提示符。

  • deploytool调用Application Compiler应用程序来执行保存的编译器项目。

  • mcc调用MATLAB编译器™在命令提示下创建可部署的应用程序。

执行编译器项目deploytool

deploytool命令有两个标志,它们调用一个编译器应用程序来打包一个已经存在的项目而不打开一个窗口。

  • 构建project_name-调用正确的编译器应用程序来构建项目,但不生成安装程序。

  • project_name-调用正确的编译器应用程序来构建项目并生成安装程序。

例如部署工具-包magicsquare的定义的二进制文件magicsquare项目并将其打包到安装程序中,您可以将其分发给其他人。

创建COM组件mcc

mcc命令调用MATLAB编译器在命令提示符下创建COM组件,并在打包组件时提供精细级别控制。它不会在安装程序中打包结果。

MATLAB类不能直接打包到COM对象中。但是,您可以在MATLAB文件中使用用户生成的类,并从该文件构建COM对象。您可以使用MATLAB命令行界面而不是库编译器应用程序来创建COM对象。通过发布mcc命令和选项。如果你使用mcc,则不创建项目。

下表提供了一些概述mcc与组件相关的选项,以及它们的语法和用法示例。

动作执行 描述
创建具有一个类的组件。

mcc选择使用:-W公司

W选项通用域名格式因为该类型控制包装器文件的生成,您可以使用它来支持组件。万博1manbetx

语法

mcc - w ' com: < component_name > [, < class_name >(<主要>。<小>]]”

一个未指明的< class_name >默认为< component_name >,未指定的版本号默认为构建的最新版本,如果没有以前的版本,则为1.0。

例子

mcc -W 'com:mycomponent,myclass,1.0' -T link:lib foo。m bar.m

该示例创建了一个名为mycomponent,它包含一个名为我的班级用方法喷火酒吧,以及1.0版本。

向COM组件添加额外的类。

mcc选择使用:不需要

一个名为< class_name >为传入的每个类参数创建。

后,< class_name >参数是一个用逗号分隔的源文件列表,这些源文件被封装为类的方法。

语法

类{:[file,[file,…]]}

例子

mcc-B'com:mycomponent,myclass,1.0'foo.m bar.mclass{myclass2:foo2.m, bar2.m}

这个例子创建了一个名为mycomponent分为两类:我的班级有方法喷火酒吧myclass2有方法foo2bar2.这个版本是1.0版。

简化组件的命令行输入。

mcc选择使用:-B.com:

使用包。

语法

mcc - b的< bundle > [: < a1 >、< a2 >, < >)

例子

mcc-B'com:mycomponent,myclass,1.0'foo.m bar.m

控制每个COM类如何使用MATLAB运行时

mcc选择使用:-

默认情况下,为newMATLAB运行时为组件中每个COM类的每个实例创建。使用-更改默认值。

这个选项告诉编译器创建一个MATLAB运行时当第一个COM类被实例化时。这MATLAB运行时在所有后续类实例之间重用和共享,从而提高了内存使用效率,并消除了MATLAB运行时每个后续类实例化的启动成本。

当使用-,请注意,所有类实例共享一个MATLAB工作区,并共享用于构建组件的MATLAB文件中的全局变量。因此,COM类的属性表现为静态属性,而不是实例属性。

请注意

默认行为规定了一个新的MATLAB运行时为类的每个实例创建,因此当类被销毁时MATLAB运行时也被摧毁了。如果您想保留全局变量的状态(例如为绘制图形而分配的那些变量),请使用-选项

例子

mcc -S -B 'com:我的组件,我的类,1.0' foo。m bar.m

该示例创建了一个名为mycomponent包含一个COM类,名为我的班级用方法喷火酒吧,以及1.0版本。

当在一个应用程序中实例化多个此类实例时,只有一个MATLAB运行时初始化,并由每个实例共享。

创建部署所需的子文件夹,并将相关文件复制到它们中。

mcc选择使用:-d

\ src\ distrib子文件夹用于打包组件。

语法

-dfoldername

编译程序和命令行之间的区别

你可以使用编译器应用程序执行相同的功能编译器.build函数,或mcc命令行界面。编译器应用程序生成中使用的交互式菜单和对话框mcc根据您的规范定制的命令。因此,您的MATLAB代码的处理方式与使用mcc

如果您知道要部署的应用程序类型的命令,并且不需要安装程序,那么执行这两个命令都会更快编译器.buildmcc然后通过编译程序的工作流程。

编译程序的优势包括:

  • 您可以使用一个直观的界面执行相关的部署任务。

  • 您可以在一个方便的项目文件中维护相关信息。

  • 项目状态在会话之间保持不变。

  • 您可以从预填充的菜单加载先前存储的编译器项目。

  • 您可以打包应用程序以进行分发。

另请参阅

|

相关话题