【问题标题】:Comparison of oleautomation compatible data types and CTSoleautomation 兼容数据类型和 CTS 的比较
【发布时间】:2010-08-11 22:05:53
【问题描述】:

当我们在 MIDL(Microsoft 接口描述语言)中定义 COM 接口时,我们应该使用 oleautomation 兼容的数据类型。这些类型可以被 COM 感知语言识别。

突然,.NET CTS(通用类型规范)在我脑海中闪现。 CTS 是任何 .NET 兼容语言都必须遵守的最小类型子集。

CTS 和 oleautomation 兼容类型不是很相似吗? CTS 是否从 oleautomation 兼容类型演变而来?

非常感谢。

【问题讨论】:

    标签: .net com clr


    【解决方案1】:

    嗯,不是真的。与 oleauto 兼容的类型集相当有限,因此存在与托管(值)类型的一对一映射也就不足为奇了。但重要的 oleauto 类型,如 VARIANT、SAFEARRAY、IDispatch* 和 HRESULT 没有直接映射。它们实际上可以分别映射到对象、System.Array、__ComObject 和 System.Exception,这要归功于 CLR 中内置的 COM 互操作。这是 CTS 没有以任何方式规定的冷硬代码。

    【讨论】:

    • 感谢您的回复。我不是指这两种模式之间的映射。我只是有一种感觉,它们都是为了同一个目的而制作的。成为可以在不同语言之间进行交流的共同基础。不是吗?
    • 是的,oleauto 类型集是专门为允许语言与明确定义的行为进行互操作而设计的。就像 CTS。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-07
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    相关资源
    最近更新 更多