数据转换规则
这个主题描述了数据转换规则MATLAB®编译器™组件。这些组件是双接口微软®支持数据类型兼容自动化的COM对象金宝app。
请注意
自动化(以前称为OLE自动化)是一种技术,允许软件包暴露他们独特的功能脚本工具和其他应用程序。自动化使用组件对象模型(COM),但是可以实现独立于其他OLE特性,如就地激活。
当一个方法被调用MATLAB编译器组件,输入参数转换为MATLAB内部数组格式和传递给编译后的MATLAB函数。在函数退出时,输出参数从MATLAB内部数组格式转换到COM自动化类型。
COM客户机通过所有编制MATLAB函数作为输入和输出参数的类型变体
。的COM变体
类型是一个联盟的几个简单的数据类型。一个类型变体
变量可以存储一个变量的简单类型,以及这些值的数组。
Win32应用程序编程接口(API)为创建和操纵提供了许多功能变体
在C / c++, Visual Basic®提供本地语言支持这种类型。金宝app
请注意
这个讨论的数据指的是两个变体
和变体
数据类型。变体
c++名称和吗变体
在Visual Basic中相应的数据类型。
看到Visual Studio®文档定义和API支持COM金宝app变体
年代。变体
变量是自我描述和存储类型代码作为一个内部的结构。
下表列出了变体
支持的类型代码金宝appMATLAB编译器组件。
变体类型代码支持金宝app
变体 类型代码(C / c++) |
C / c++类型 | 变体 类型代码(Visual Basic) |
视觉BasicType | 定义 |
---|---|---|---|---|
VT_EMPTY |
- - - - - - |
vbEmpty |
- - - - - - |
未初始化 |
VT_I1 |
字符 |
- - - - - - |
- - - - - - |
签署1字节字符 |
VT_UI1 |
无符号 |
vbByte |
字节 |
无符号1字节字符 |
VT_I2 |
短 |
vbInteger |
整数 |
签署两字节整数 |
VT_UI2 |
无符号短 |
- - - - - - | - - - - - - | 无符号两字节整数 |
VT_I4 |
长 |
vbLong |
长 |
签署了4字节整数 |
VT_UI4 |
无符号长 |
- - - - - - | - - - - - - | 无符号4字节整数 |
VT_R4 |
浮动 |
vbSingle |
单 |
IEEE®4字节浮点值 |
VT_R8 |
双 |
vbDouble |
双 |
IEEE eight-byte浮点值 |
VT_CY |
CY + |
vbCurrency |
货币 |
货币价值(64位整数,扩展到10000年) |
VT_BSTR |
型 + |
vbString |
字符串 |
字符串值 |
VT_ERROR |
范围 + |
vbError |
- - - - - - | 一个 |
VT_DATE |
日期 + |
vbDate |
日期 |
Eight-byte浮点值表示日期和时间 |
VT_INT |
int |
- - - - - - | - - - - - - | 带符号整数;相当于类型 |
VT_UINT |
无符号整型 |
- - - - - - | - - - - - - | 无符号整数;相当于类型 |
VT_DECIMAL |
小数 + |
vbDecimal |
- - - - - - | 96位无符号整数(由),由一个变量扩展10的力量 |
VT_BOOL |
VARIANT_BOOL + |
vbBoolean |
布尔 |
两字节布尔值(0 xffff = True;0 x0000 = False) |
VT_DISPATCH |
IDispatch * |
vbObject |
对象 |
|
VT_VARIANT |
变体 + |
vbVariant |
变体 |
|
<任何东西> | VT_ARRAY |
- - - - - - | - - - - - - | - - - - - - | 位结合 |
<任何东西> | VT_BYREF |
- - - - - - | - - - - - - | - - - - - - | 位结合 |
+表示windows类型。不是标准的C / c++的一部分。 |
下表列出了转换规则从MATLAB COM。
MATLABCOM变体转换规则
MATLAB数据类型 | 变体 标量数据类型 |
变体 数组数据类型 |
评论 |
---|---|---|---|
细胞 |
1×1细胞转换为一个数组 |
一个多维细胞转换为一个数组 |
|
结构 |
|
|
一个MATLAB |
字符 |
一个1×1 |
一个1-by-L |
数组的字符不支持向量金宝app |
稀疏的 |
|
|
MATLAB稀疏被转换为一个数组 |
双 |
一个真正的1×1双矩阵转换为一个 |
一个真正的多维矩阵转换为一个的两倍 |
复杂的数组传递给从编译使用MATLAB函数 |
单 |
一个真正的1×1单矩阵转换为一个 |
一个真正的多维矩阵转换为一个 |
复杂的数组传递给从编译使用MATLAB函数 |
int8 |
一个真正的1×1 |
一个真正的多维 |
复杂的数组传递给从编译使用MATLAB函数 |
uint8 |
一个真正的1×1 |
一个真正的多维 |
复杂的数组传递给从编译使用MATLAB函数 |
int16 |
一个真正的1×1 |
一个真正的多维 |
复杂的数组传递给从编译使用MATLAB函数 |
uint16 |
一个真正的1×1 |
一个真正的多维 |
复杂的数组传递给从编译使用MATLAB函数 |
int32 |
一个1×1 |
一个多维 |
复杂的数组传递给从编译使用MATLAB函数 |
uint32 |
一个1×1 |
一个多维 |
复杂的数组传递给从编译使用MATLAB函数 |
函数处理 |
|
|
不支持金宝app |
Java®类 |
|
|
不支持金宝app |
用户类 |
|
|
不支持金宝app |
逻辑 |
|
|
下表列出了转换规则从COM到MATLAB。
COM变体MATLAB转换规则
变体 类型 |
MATLAB数据类型(标量或数组数据) | 评论 |
---|---|---|
VT_EMPTY |
不适用 |
创建空数组。 |
VT_I1 |
int8 |
|
VT_UI1 |
uint8 |
|
VT_I2 |
int16 |
|
VT_UI2 |
uint16 |
|
VT_I4 |
int32 |
|
VT_UI4 |
uint32 |
|
VT_R4 |
单 |
|
VT_R8 |
双 |
|
VT_CY |
双 |
|
VT_BSTR |
字符 |
一个 |
VT_ERROR |
int32 |
|
VT_DATE |
双 |
1。 |
VT_INT |
int32 |
|
VT_UINT |
uint32 |
|
VT_DECIMAL |
双 |
|
VT_BOOL |
逻辑 |
|
VT_DISPATCH |
(不同) |
目前,支持存在Exce金宝appl® |
<任何东西> | VT_BYREF |
(不同) |
指针的任何基本类型处理根据他们所指向的规则。由此产生的MATLAB数组包含深度值的副本。 |
<任何东西> | VT_ARRAY |
(不同) |
多维 |