exponenta event banner

Преобразование типов MATLAB в типы COM

Типы данных для аргументов и возвращаемых значений серверных функций выражаются как типы данных Automation, которые являются не зависящими от языка типами, определенными протоколом Automation. Например, BSTR является широкосимвольным строковым типом, определяемым как тип автоматизации, и является тем же форматом данных, который используется языком Visual Basic ® для хранения строк. Любой СОМ-совместимый клиент должен поддерживать эти типы данных, хотя подробные сведения об объявлении этих типов и управлении ими являются специфичными для клиента.

В этой таблице показано, как MATLAB ® преобразует данные из MATLAB в типы COM.

Тип MATLABБлижайший тип COMРазрешенные типы
ручкаVT_DISPATCH
VT_UNKNOWN
VT_DISPATCH
VT_UNKNOWN
символьный вектор VT_BSTRVT_LPWSTR
VT_LPSTR
VT_BSTR
VT_FILETIME
VT_ERROR
VT_DECIMAL
VT_CLSID
VT_DATE
int16 VT_I2VT_I2
uint16VT_UI2VT_UI2
int32VT_I4VT_I4
VT_INT
uint32VT_UI4VT_UI4
VT_UINT
int64VT_I8VT_I8
uint64VT_UI8VT_UI8
singleVT_R4VT_R4
double VT_R8VT_R8
VT_CY
logicalVT_BOOL VT_BOOL
случайная работа VT_I1VT_I1
VT_UI1

Данные варианта

variant - любой тип данных, кроме структуры или разреженного массива. (Дополнительные сведения см. в разделе Основные классы MATLAB.)

При использовании в качестве входного аргумента MATLAB обрабатывает variant и variant(pointer) точно так же.

При передаче пустого массива ([]) типа double, MATLAB создает variant(pointer) установить в значение VT_EMPTY. Передача пустого массива любого другого числового типа не поддерживается.

Аргумент MATLABБлижайший тип COMРазрешенные типы
variant VT_VARIANTVT_VARIANT
VT_USERDEFINED
VT_ARRAY
variant(pointer)VT_VARIANTVT_VARIANT | VT_BYREF

Данные SAFEARRAY

Когда COM-метод идентифицирует SAFEARRAY или SAFEARRAY(указатель), эквивалент MATLAB является матрицей.

Аргумент MATLABБлижайший тип COMРазрешенные типы
SAFEARRAYVT_SAFEARRAYVT_SAFEARRAY
SAFEARRAY(указатель) VT_SAFEARRAYVT_SAFEARRAY | VT_BYREF

VT_DATE Тип данных

Для передачи VT_DATE введите ввод в программу Visual Basic, используйте класс MATLAB COM.date. Например:

d = COM.date(2005,12,21,15,30,05);
get(d)
     Value: 7.3267e+005
    String: '12/21/2005 3:30:05 PM'

Используйте now для установки Value свойство для номера даты:

d.Value = now;

COM.date принимает те же входные аргументы, что и datenum.

Неподдерживаемые типы

MATLAB не поддерживает эти типы COM.

  • Строковый массив

  • Структура

  • Разреженный массив

  • Многомерный SAFEARRAYs (больше двух размеров)

  • Свойства только для записи

См. также

Связанные темы