Вызов методов образца класса

Стандартный метод отображения

После создания образца класса можно вызвать методы класса для доступа к инкапсулированному MATLAB® функций. Продукт MATLAB Compiler SDK™ использует стандартный метод, чтобы сопоставить исходный синтаксис функции MATLAB со списком аргументов метода. Этот стандартный метод отображения следующий:

  • nargout

    Когда метод имеет выходные аргументы, первый аргумент всегда nargout, который имеет тип Long. Этот входной параметр передает нормальный MATLAB nargout параметр инкапсулированной функции и определяет, сколько выходов запрашивается. Методы, которые не имеют выходных аргументов, не проходят nargout аргумент.

  • Выходные параметры

    Следующие nargout являются выходными параметрами, перечисленными в том же порядке, в котором они появляются на левой стороне исходной функции MATLAB.

  • Входные параметры

    Далее идут входные параметры, перечисленные в том же порядке, в котором они появляются на правой стороне исходной функции MATLAB.

Для примера самая типовая функция MATLAB:

function [Y1, Y2, ..., varargout] = foo(X1, X2, ..., varargin)

Эта функция сопоставлена непосредственно со следующей корпорацией Майкрософт® Визуальный базовый® подпись:

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

Для получения дополнительной информации и примеров стандартного отображения функций MATLAB в вызовы методов COM см. раздел «Соглашения о классах».

Вариант

Все входные и выходные аргументы вводятся как Variant, тип данных Visual Basic по умолчанию. The Variant тип может содержать любой из базовых типов Visual Basic, массивов любого типа и ссылок на объекты. Для получения дополнительной информации о преобразовании любого базового типа в типы данных MATLAB и из них см. раздел Преобразование данных.

В целом можно задать любой тип Visual Basic в качестве аргумента для метода класса, за исключением определяемых пользователем типов Visual Basic (UDT).

Когда вы проходите простой Variant type как выходной параметр, вызываемый метод назначает полученные данные и освобождает исходное содержимое Variant. В этом случае достаточно измерить каждый выходной аргумент как одну Variant. Когда тип объекта (например, Excel® Range) передается как выходной параметр, ссылка на объект передается в обоих направлениях, и Value объекта свойство получает данные.

Передайте входные и выходные параметры

Следующие примеры показывают, как передать входные и выходные параметры методам класса COM-компонента в Visual Basic.

Первый пример является функцией, foo, который принимает два аргумента и возвращает один выходной аргумент. The foo функция отправляет вызов в метод класса, который соответствует функции MATLAB формы function y = foo(x1,x2).

Function foo(x1 As Variant, x2 As Variant) As Variant
   Dim aClass 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.Description
End Function

Второй пример переписывает foo функция как стандартная подпрограмма:

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")
   Call aClass.foo(1,Xout,X1,X2)
   Exit Sub
Handle_Error:
   MsgBox(Err.Description)
End Sub