Что такое ВАРИАНТНАЯ структура данных?
Я изучаю 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