다음을 통해 공유


컴파일러 경고(수준 4) C4336

'type_lib2'을 가져오기 전에 상호 참조된 형식 라이브러리 'type_lib1'을 가져옵니다.

형식 라이브러리가 #import 지시문으로 참조되었습니다. 그러나 형식 라이브러리에는 .로 참조되지 않은 다른 형식 라이브러리에 대한 참조 #import가 포함되어 있습니다. 이 다른 .tlb 파일은 컴파일러에 의해 발견되었습니다.

다음 두 파일(midl.exe 사용하여 컴파일됨)에서 만든 디스크에 두 개의 형식 라이브러리가 지정됩니다.

// c4336a.idl
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12b")]
library c4336aLib
{
   [uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12c")]
   enum E_C4336
   {
      one, two, three
   };
};

두 번째 형식 라이브러리:

// c4336b.idl
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12d")]
library C4336bLib
{
   importlib ("c4336a.tlb");
   [uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12e")]
   struct S_C4336
   {
      enum E_C4336 e;
   };
};

다음 샘플에서는 C4336을 생성합니다.

// C4336.cpp
// compile with: /W4 /LD
// #import "C4336a.tlb"
#import "C4336b.tlb"   // C4336, uncomment previous line to resolve