2011-01-28 114 views
2

我在网上发现了许多对这个词的引用,特别是在微软的MSDN网站上,甚至是这些语言的列表。但是,我找不到这个术语的定义。 (是否像COM接口已实现的语言一样简单?)什么是“自动兼容语言”?

如果知道定义的链接,请让我知道。

谢谢。

回答

1

在Microsoft Windows应用程序 编程,OLE自动化(后来 被微软更名为刚 自动化,1 [2]虽然老 长期留在广泛使用),是 的进程间通信 机制基于组件对象 通过脚本语言打算使用的模型(COM) Visual Basic - 但现在在Windows上运行的语言是 [3]。它 提供了一种基础设施,由此 应用程序调用自动化 控制器可以访问和操作 (即的组属性或致电 方法)共享自动化对象 由其他 应用导出。

From Wikipedia entry

5

精简到最基本的要素,来了解你必须了解的GUID和IUnknown的COM。自动化的等价物是ProgIDs和IDispatch。

ProgID帮助您创建COM coclass。一个典型的ProgID是“Word.Automation”,Microsoft Word的progid。您会在HKEY_CLASSES_ROOT下的注册表中找到它们。您的语言中的助手函数的典型名称是CreateObject()。您将ProgID(可选的机器名称)传递给它,然后获取接口引用。然后可以使用它来进行方法调用和获取/设置属性。

语言运行库使用IDispatch接口(通过IUnknown :: QueryInterface检索)来发现由COM服务器实现的方法的名称和参数。这被称为后期绑定,即任何脚本语言使用自动化的方式。它只有4种方法:

  • 的IDispatch :: GetTypeInfoCount(),返回1,如果服务器可以提供类型信息
  • 的IDispatch :: GetTypeInfo的(),返回类型信息,有助于使类型安全的调用
  • IDispatch :: GetIDsOfNames(),将标识符名称映射到数字
  • IDispatch :: Invoke(),调用编号的方法或属性getter/setter。

这就是所需要的。

+0

这里有人比我更了解谷歌搜索条目。我向你致敬,先生 – cuneyt 2011-01-29 00:17:10