主要内容

调用类实例的方法

标准映射技术

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

  • nargout

    当一个方法有输出参数时,第一个参数总是nargout,是典型的.这个输入参数通过正常的MATLABnargout参数,并指定请求多少输出。没有输出参数的方法不传递nargout论点。

  • 输出参数

    nargout是与原始MATLAB函数左侧显示的顺序相同的输出参数。

  • 输入参数

    接下来是输入参数,其顺序与原始MATLAB函数右侧显示的顺序相同。

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

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

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

Sub foo(nargout As Long, _ Y1 As Variant, _ Y2 As Variant, _ . .varargout As Variant, _ X1 As Variant, _ X2 As Variant, _ . .变长度输入宗量变异)

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

变体

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

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

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

传递输入和输出参数

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

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

Function foo(x1 As Variant, x2 As Variant) As Variant Dim class As Object Dim y As Variant On Error Goto Handle_Error Set aClass = CreateObject("mycomponent.myclass.1_0") Call aClass.foo(1,y,x1,x2) foo = y Exit Function Handle_Error: foo = Err. mycomponent.myclass.1_0描述函数结束

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

Sub foo(Xout As Variant, X1 As Variant, X2 As Variant) Dim class As Object On Error Goto Handle_Error Set aClass = CreateObject("mycomponent.myclass.1_0"