Сравнение oleautomation совместимых типов данных и CTS - PullRequest
0 голосов
/ 11 августа 2010

Когда мы определяем интерфейс COM в MIDL (язык описания интерфейсов Microsoft), мы должны использовать типы данных, совместимые с oleautomation.Эти типы могут распознаваться языками, поддерживающими COM.

Внезапно .NET CTS (Common Type Specification) вспыхнуло в моей голове.CTS - это минимальное подмножество типов, которое должен соблюдать любой .NET-совместимый язык.

Разве CTS и oleautomation-совместимые типы не очень похожи?CTS развивается от oleautomation совместимых типов?

Большое спасибо.

1 Ответ

1 голос
/ 11 августа 2010

Ну, не совсем.Набор типов, совместимых с oleauto, довольно ограничен, поэтому неудивительно, что существует сопоставление «один к одному» с управляемыми типами (значениями).Но важные типы oleauto, такие как VARIANT, SAFEARRAY, IDispatch * и HRESULT, не имеют прямого сопоставления.То, что они действительно могут быть сопоставлены, соответственно, объектам, System.Array, __ComObject и System.Exception, благодаря COM-взаимодействию, встроенному в CLR.Это холодный жесткий код, который никак не прописан в CTS.

...