调用约定

生产COM类

生产COM类需要的一代

  • 在接口描述语言中的类定义文件(IDL)

  • 一个或多个相关的C ++的类定义/执行文件

MATLAB®编译器SDK™产品自动地产生必要的IDL和C / C ++代码来构建组件中的每个COM类。当您使用编译器生成一个COM组件,以及COM组件的用户,当他们用它进行编程这个过程一般是透明的你。

有关IDL和C ++建立COM对象和映射到其他语言的编码规则,信息,请参见中的文章MSDN库

下表显示了一个通用的MATLAB函数来IDL代码和所述映射微软®Visual Basic中®

样品
通用MATLAB代码
函数[Y1,Y2,...,varargout] = FOO(X1,X2,...,varargin)
IDL代码
HRESULT FOO([IN]长nargout,[IN,OUT] VARIANT * Y1,[IN,OUT] VARIANT * Y2,[IN,OUT] VARIANT * varargout,[IN] VARIANT X1,[IN] VARIANT X2,。[IN] VARIANT varargin);
Visual Basic代码
子FOO(nargout只要,_ Y1作为变体,_ Y2作为变体,_。varargout作为变体,_ X1作为变体,_ X2作为变型,_。varargin作为变型)

IDL映射

该IDL函数定义是由具有相同的名称与原始MATLAB函数和包含原始加上一个附加参数的所有输入和输出参数列表产生功能产生的nargout

如果存在,nargout参数是一个[在]类型的参数。它总是在列表中的第一个参数。此参数允许MATLAB的正确通道nargout参数编译MATLAB代码。该nargout如果封装不含输出MATLAB函数参数没有产生。

nargout参数,输出被在它们出现在MATLAB函数的左侧的顺序列出,并且被标记为[进出],这意味着它们在两个方向上通过。

该功能的输入,下面列出,出现在相同的顺序,他们在原有功能的右侧做。所有的输入被标记为[在]参数。

当存在时,任选的varargin/varargout参数始终列为最后的输入参数和最后的输出参数。比其他所有参数nargout作为COM传递VARIANT类型。数据转换列出的规则MATLAB阵列和COM之间的转换VARIANT秒。

微软Visual Basic中制图

微软的Visual Basic提供了COM的原生支持万博1manbetx变种S采用了变种类型,以及所有的Visual Basic基本类型,并从隐式转换变种秒。在任何Visual Basic基本类型的一般情况下,阵列/标量,以及变体类型的数组/标量,可以作为参数传递。

MATLAB编译SDKCOM组件还提供了Excel的直接支持万博1manbetx®范围对象,应用程序使用由Visual Basic以表示在Excel工作表单元格范围。

请参阅Visual Basic应用程序包含的文档Microsoft Excel中对于Visual Basic的数据类型的详细信息。

查看MSDN库有关Visual Basic和有关Excel的更多信息范围操纵。