2008-09-24 2 views
6

MS ATL 라이브러리를 사용하여 COM 개체를 작성했습니다. IDL에서 많은 수의 열거 형을 선언했지만 MS COM Object Viewer 도구를 사용하여 형식 라이브러리를 볼 때 나타나지 않습니다. 문제는 누락 된 enum이 실제로 COM 메서드의 매개 변수로 사용되지 않는다는 것 -이 enum이 어떻게 나타나게 할 수 있습니까? IDL의 예를 들어형식 라이브러리에 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); 

, 그들은 여전히 ​​객체를 사용하는 모든 사용자에게 유용하지만 내가 얻을 수 없다 그들을 내보낼 수 있습니다.

이전에 본 사람이 있습니까?

답변

13

IDL의 library 섹션에 입력 했습니까? library 섹션에 언급 된 유형 만 TLB에 들어갑니다.

library MyLib { 
    // ... 
    enum BAR; 
+0

그건 속임수 였어! 고맙습니다. – Rob

+0

반가워요. StackOverflow는 실제로 사람들이 도움을 얻을 수 있도록 도와줍니다! : o) – Motti

+0

위대한 동일을 찾고있다 – thatsalok

관련 문제