Что такое ВАРИАНТНАЯ структура данных?

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

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

2 ответа

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

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

Эти типы описаны здесь: Перечисление VARENUM.

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

Автоматизация COM появилась в среде разработки Visual Basic (до версии 6, до VB.NET). VB/VBA определяет те же типы (в том числе Variant).

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

Другие вопросы по тегам