2016-03-10 7 views
0

Я изучаю Microsoft OLE Automation и COM, и он использует VARIANT для передачи данных. Я прочитал, что это структура данных объединения, но не нашел достаточной информации об этом.Что такое структура данных VARIANT?

Было бы полезно узнать больше о VARIANT, поскольку я новичок в автоматизации и COM?

+0

Просто универсальный тип переменной, он может хранить любые значения. Может быть int или строка или массив и т. Д. Сравните с Boost.Variant, точно такую ​​же идею. –

ответ

1

A 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

2

COM Automation определяет набор типов, которые он знает, как маршал через поток или процесс границ.

Это означает, что вам не нужно настраивать прокси-серверы, если вы ограничиваете свои интерфейсы только этими типами и описываете свой интерфейс с библиотекой типов (большинство инструментов разработки, таких как Visual Studio, делают это автоматически).

Эти типы описаны здесь: VARENUM Data Type, отмеченные знаком «[V] - могут появляться в VARIANT».

Тип VARIANT сам по себе является типом автоматизации, это структура, которая может содержать любой из других типов автоматизации.

COM Automation появилась с средой разработки Visual Basic (до версии 6 до .NET). VB определяет те же типы (включая вариант).

Смежные вопросы