【问题标题】:IDL enumeration not displayed in type libraryIDL 枚举未显示在类型库中
【发布时间】:2010-09-12 15:33:25
【问题描述】:

我有一个使用 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);

即使有问题的枚举没有被任何方法直接使用,它们仍然对使用该对象的任何人有用,但我无法让它们导出。

有人见过吗?

【问题讨论】:

    标签: com idl


    【解决方案1】:

    您是否将它们放在 IDL 的 library 部分?只有library 部分中提到的类型才会进入 TLB。

    library MyLib {
        // ...
        enum BAR;
    

    【讨论】:

    • 很高兴听到。你知道吗,StackOverflow 实际上帮助人们寻求帮助! :o)
    • 在 2003 年,如果我提到标记名,我似乎只能让它发挥作用。
    猜你喜欢
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    • 2017-01-14
    • 2012-09-16
    • 1970-01-01
    • 2016-01-13
    相关资源
    最近更新 更多