Типы данных для аргументов и возвращаемых значений функций сервера выражаются как типы данных Автоматизации, которые являются независимыми от языка типами, заданными протоколом Автоматизации. Например, BSTR строковый тип широкого символа, заданный как тип Автоматизации, и тот же формат данных, используемый Визуальным языком Basic®, чтобы сохранить строки. Любой COM-совместимый клиент должен поддержать эти типы данных, несмотря на то, что детали того, как вы объявляете и управляете этими типами, являются конкретным клиентом.
Эта таблица показывает, как MATLAB® преобразует данные от MATLAB до типов COM.
| Тип MATLAB | Самый близкий тип COM | Позволенные типы |
|---|---|---|
| указатель | VT_DISPATCHVT_UNKNOWN | VT_DISPATCHVT_UNKNOWN |
| символьный вектор |
VT_BSTR | VT_LPWSTRVT_LPSTRVT_BSTRVT_FILETIMEVT_ERRORVT_DECIMALVT_CLSIDVT_DATE |
int16 |
VT_I2 | VT_I2 |
uint16 | VT_UI2 | VT_UI2 |
int32 | VT_I4 | VT_I4VT_INT |
uint32 | VT_UI4 | VT_UI4VT_UINT |
int64 | VT_I8 | VT_I8 |
uint64 | VT_UI8 | VT_UI8 |
single | VT_R4 | VT_R4 |
double |
VT_R8 | VT_R8VT_CY
|
logical | VT_BOOL
| VT_BOOL |
| 'char' |
VT_I1 | VT_I1VT_UI1 |
variant любой тип данных кроме структуры или разреженного массива. (Для получения дополнительной информации смотрите Основной принцип Классы MATLAB.)
Когда используется в качестве входного параметра, MATLAB обрабатывает variant и вариант ( тот же путь.pointer)
Если вы передаете пустой массив ([]) из типа double, MATLAB создает вариант ( установите на pointer)VT_EMPTY. Передача пустого массива любого другого числового типа не поддержана.
| Аргумент MATLAB | Самый близкий тип COM | Позволенные типы |
|---|---|---|
variant |
VT_VARIANT | VT_VARIANTVT_USERDEFINEDVT_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.
Структура
Разреженный массив
Многомерный SAFEARRAYs (больше, чем две размерности)
Свойства только для записи