Типы данных для аргументов и возвращаемые значения функций сервера выражаются как типы данных Автоматизации, которые являются не зависящими от языка типами, определенными протоколом Автоматизации. Для примера, BSTR
является широкосимвольным строковым типом, заданным как тип Автоматизации, и является тем же форматом данных, который используется в Visual Basic® язык для хранения строк. Любой COM-совместимый клиент должен поддерживать эти типы данных, хотя сведения о том, как вы объявляете и манипулируете этими типами, зависят от клиента.
В этой таблице показано, как MATLAB® преобразует данные из MATLAB в COM-типы.
Тип MATLAB | Ближайший COM-тип | Разрешенные типы |
---|---|---|
указатель | VT_DISPATCH VT_UNKNOWN | VT_DISPATCH VT_UNKNOWN |
вектор символов |
VT_BSTR | VT_LPWSTR VT_LPSTR VT_BSTR VT_FILETIME VT_ERROR VT_DECIMAL VT_CLSID VT_DATE |
int16 |
VT_I2 | VT_I2 |
uint16 | VT_UI2 | VT_UI2 |
int32 | VT_I4 | VT_I4 VT_INT |
uint32 | VT_UI4 | VT_UI4 VT_UINT |
int64 | VT_I8 | VT_I8 |
uint64 | VT_UI8 | VT_UI8 |
single | VT_R4 | VT_R4 |
double |
VT_R8 | VT_R8 VT_CY
|
logical | VT_BOOL
| VT_BOOL |
char |
VT_I1 | VT_I1 VT_UI1 |
variant
- любой тип данных, кроме структуры или разреженного массива. (Для получения дополнительной информации см. «Фундаментальные классы MATLAB».)
При использовании в качестве входного параметра MATLAB обработок variant
и вариант
точно так же.(pointer
)
Если вы передаете пустой массив ([]
) типа double
MATLAB создает вариант
установлено на (pointer
)VT_EMPTY
. Передача пустого массива любого другого числового типа не поддерживается.
Аргумент MATLAB | Ближайший COM-тип | Разрешенные типы |
---|---|---|
variant |
VT_VARIANT | VT_VARIANT VT_USERDEFINED VT_ARRAY |
вариант | VT_VARIANT | VT_VARIANT | VT_BYREF |
Когда COM-метод идентифицирует SAFEARRAY
или SAFEARRAY
(указатель), эквивалент MATLAB является матрицей.
Аргумент MATLAB | Ближайший COM-тип | Разрешенные типы |
---|---|---|
SAFEARRAY | VT_SAFEARRAY | VT_SAFEARRAY |
SAFEARRAY (указатель) |
VT_SAFEARRAY | VT_SAFEARRAY | VT_BYREF |
Для прохождения 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-типы.
Строковые массивы
Структура
Разреженный массив
Многомерные SAFEARRAY
s (больше двух измерений)
Свойства только для записи