代码之家  ›  专栏  ›  技术社区  ›  Rob

类型库中未显示IDL枚举

  •  6
  • Rob  · 技术社区  · 16 年前

    我有一个使用MS ATL库编写的COM对象。我在IDL中声明了一系列枚举,但在使用ms-com对象查看器工具查看类型库时,它们不会出现。问题似乎是丢失的枚举实际上并没有被任何COM方法用作参数-如何强制这些枚举出现?

    例如,在IDL中:

    // Used by Foo method, so appears in the type library
    typedef enum FOO
    {
        FOO_1,
        FOO_2,
    } FOO;
    
    // Not used by any method, so won't appear in the type library
    typedef enum BAR
    {
        BAR_1,
        BAR_2,
    } BAR;
    
    [id(1)] HRESULT Foo([in] FOO eFoo);
    

    尽管所讨论的枚举没有被任何方法直接使用,但它们对任何使用对象的人仍然有用,但我无法让它们导出。

    以前有人见过这个吗?

    1 回复  |  直到 16 年前
        1
  •  14
  •   Motti    16 年前

    你把它们放在 library IDL的部分?仅在中提到的类型 图书馆 部分进入TLB。

    library MyLib {
        // ...
        enum BAR;