生成COM组件

使用mcc命令可以根据MATLAB M文件创建COM组件。语法格式为:

code.matlab
mcc -W com:component_name,className -T link:lib options
  class{className:mfilename1 mfilename2...mfilenameN}

下面介绍语法的各个部分。

-W:让编译器创建一个打包器函数。该选项带一个字符串参数,指定组件的某些特性,如表3-2中所示。

表3-2 –W字符串参数及其描述

-W 字符串参数 描 述
com: 该关键字告诉编译器要创建的组件的类型,后面跟一冒号,指定创建一个COM组件
component_name 指定组件名称及其名字空间,名字空间是一个句号间隔的列表,如 componentname.groupname.component
className 指定.NET类的名称
code.matlab
mfilename1 mfilename2…mfilenameN

指定M文件或即将作为要创建的类的方法的M文件。

-T

指定输出类型。要创建COM组件,需要指定关键字link:lib,它将对象链接到共享库(DLL)中。

COM打包器选项会创建一些文件的超集,这些文件是在生成C或C++库打包器时创建的。除了C或C++库文件外,COM打包器会创建表3-3中的文件。

表3-3 COM打包器创建的文件

文 件 描 述
_idl.idl COM的接口描述文件
_com.hpp COM类的C++头文件
_com.cpp COM类的C++源文件
_dll.cpp COM对象的DLL接口
_def COM DLL的定义文件

如果没有指定<class_name>,则默认时为<component_name>。如果没有指定版本号,则默认时采用最后生成时的版本,或者没有先前版本时指定为1.0。

COM打包器选项生成创建一个单独的COM对象所必需的所有代码和文件,该对象包含编译器生成的所有接口。打包器选项创建一个与指定的<class_name>名称相同的COM类和一个对应的名为<class_name>的接口类。使用主版本号和次版本号来控制所生成的COM接口的主版本号和次版本号。