我正在学习Microsoft OLE自动化和COM,它使用VARIANT传递数据。我已经读过它是联合数据结构,但没有找到足够的相关信息。
因为我不熟悉自动化和COM,所以对我有更多了解VARIANT会很有帮助吗?
答案 0 :(得分:3)
COM Automation定义了一组知道如何通过线程或进程边界编组的类型。
这意味着如果您将接口限制为仅使用这些类型,并且您使用类型库(大多数开发工具,如Visual Studio,自动执行此操作)描述您的接口,则不需要自定义代理/存根。 / p>
这里描述了这些类型:VARENUM Enumeration。
VARIANT类型本身就是一种自动化类型,它是一个可以包含任何其他自动化类型的结构。
COM Automation出现在Visual Basic开发环境中(最高版本6,在VB.NET之前)。 VB / VBA定义了相同的类型(包括Variant
)。
答案 1 :(得分: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