IDL枚举未显示在类型库中
时间:2020-03-06 14:38:46 来源:igfitidea点击:
我有一个使用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);
即使有问题的枚举没有被任何方法直接使用,它们仍然对使用该对象的任何人有用,但是我无法导出它们。
谁看过这个吗?
解决方案
我们是否将它们放在IDL的"库"部分中?只有在"库"一节中提到的类型才会进入TLB。
library MyLib { // ... enum BAR;