Перечисление IDL не отображается в библиотеке типов

StackOverflow https://stackoverflow.com/questions/125725

  •  02-07-2019
  •  | 
  •  

Вопрос

У меня есть COM-объект, написанный с использованием библиотеки MS ATL.Я объявил кучу перечислений в 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);

Несмотря на то, что перечисления, о которых идет речь, напрямую не используются никакими методами, они все равно будут полезны всем, кто использует объект, но я не могу заставить их экспортировать.

Кто-нибудь видел это раньше?

Это было полезно?

Решение

Вы положили их в library раздел IDL?Только типы, упомянутые в library раздел переходит в TLB.

library MyLib {
    // ...
    enum BAR;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top