VARIANT 数据结构到底是什么?

问题描述 投票:0回答:2

我正在学习Microsoft OLE Automation和COM,它使用VARIANT来传递数据。我读过它是联合数据结构,但没有找到足够的信息。

因为我是自动化和 COM 的新手,这对我了解更多有关 VARIANT 的信息会有帮助吗?

visual-c++ com variant ole-automation
2个回答
4
投票

COM 自动化定义了一组类型,它知道如何通过线程或进程边界封送这些类型。

这意味着如果您限制接口仅使用这些类型,并且使用类型库描述您的接口(大多数开发工具,例如 Visual Studio,会自动执行此操作),则不需要自定义代理/存根。

这些类型的描述如下:VARENUM 枚举

VARIANT 类型本身就是一种自动化类型,它是一个可以包含任何其他自动化类型的结构。

COM Automation 随 Visual Basic 开发环境一起出现(最高版本 6,早于 VB.NET)。 VB/VBA 定义相同的类型(包括

Variant
)。


2
投票

一个 VARIANT 的长度是 16 个字节。前两个字节定义变体保存的数据类型:

https://msdn.microsoft.com/en-us/library/windows/desktop/ms221170(v=vs.85).aspx

VARIANT 的后半部分保存变量的内容。欲了解更多信息:

https://msdn.microsoft.com/en-gb/library/windows/desktop/ms221627(v=vs.85).aspx

© www.soinside.com 2019 - 2024. All rights reserved.