主要内容

调用类实例的方法

标准映射技术

创建类实例后,可以调用类方法来访问封装的MATLAB®功能。的MATLAB编译SDK™product使用标准技术将原始MATLAB函数语法映射到方法的参数列表。这种标准映射技术如下:

  • nargout

    当一个方法有输出参数时,第一个参数总是nargout,这是类型.这个输入参数通过普通的MATLABnargout参数设置为封装函数,并指定请求多少输出。没有输出参数的方法不会传递nargout论点。

  • 输出参数

    nargout为输出参数,其顺序与原始MATLAB函数左侧的输出参数相同。

  • 输入参数

    接下来是与原始MATLAB函数右侧相同顺序列出的输入参数。

例如,最通用的MATLAB函数是:

函数[Y1, Y2,…], varargout] = foo(X1, X2,…变长度输入宗量)

这个函数直接映射到下面微软®Visual Basic®签名:

Sub foo(nargout As Long, _ Y1 As Variant, _ Y2 As Variant, _ . .)varargout作为变体,_ X1作为变体,_ X2作为变体,_ . .varargin As Variant)

看到调用约定有关从MATLAB函数到COM类方法调用的标准映射的更多细节和示例。

变体

所有输入和输出参数的类型为变体,默认的Visual Basic数据类型。的变体type可以保存任何基本的Visual basic类型、任何类型的数组和对象引用。看到数据转换有关任何基本类型与MATLAB数据类型之间转换的详细信息。

通常,您可以将任何Visual Basic类型作为类方法的参数提供,但Visual Basic用户定义类型(udt)除外。

当你通过一个简单的变体类型作为输出参数,则被调用的方法分配接收到的数据并释放变体.在这种情况下,将每个输出参数划分为单个维度就足够了变体.当一个对象类型(如Excel®范围)作为输出参数传递,对象引用在两个方向上传递,对象的价值属性接收数据。

传递输入和输出参数

下面的例子展示了如何在Visual Basic中将输入和输出参数传递给COM组件类方法。

第一个例子是一个函数,喷火,它接受两个参数并返回一个输出参数。的喷火函数将调用分派给对应于窗体的MATLAB函数的类方法函数y = foo(x1,x2)

函数foo(x1 As Variant, x2 As Variant)将aClass作为对象Dim y As Variant On Error Goto Handle_Error Set aClass = CreateObject("mycomponent.myclass.1_0")调用aClass.foo(1,y,x1,x2) foo = y Exit函数Handle_Error: foo = Err。结束

第二个示例重写喷火作为子程序的函数:

Sub foo(Xout As Variant, X1 As Variant, X2 As Variant) Dim aClass As Object On Error Goto Handle_Error Set aClass = CreateObject("mycomponent.myclass.1_0")调用aClass.foo(1,Xout,X1,X2)退出Sub Handle_Error: MsgBox(Err.Description)结束Sub