1

为什么在 ECOM 中需要实现 ID?UID3不够?

谢谢你。

4

1 回答 1

1

所有 Symbian OS 二进制文件都有三个 UID:UID1、UID2、UID3。

  • UID1 指定目标类别(例如 exe、dll)并从 MMP 文件TARGETTYPE关键字自动推断。

  • UID2 指定目标子类别(例如通用dll 或插件dll)。对于 ECOM 插件 dll,它应该是0x10009d8d.

  • UID3 标识对象本身,您必须提供唯一值(从不受保护的范围中挑选或从受保护的范围分配)。UID2 和 UID3 使用 MMP 文件UID关键字指定。

ECOM插件资源文件包含三种UID:

  • dll_uid是一种将插件资源文件中包含的接口/实现映射到插件二进制 DLL 的机制。它与 UID3 相同。

  • interface_uid是标识插件实现的接口的 UID。一个插件接口可能有多个实现,因此需要一种机制来识别它们的共性。

  • implementation_uid是接口实现的标识符。通常它是相同的,dll_uid但它不需要是。在单个二进制文件中允许多个接口实现可能会有所不同。

因此,UID3 就足够了,但是加载资源文件的 ECOM 框架也需要知道二进制文件dll_uid才能在请求时加载实现。

于 2010-03-09T09:00:56.507 回答