다음을 통해 공유


컴파일러 경고(수준 1) C4772

#import 누락된 형식 라이브러리에서 형식을 참조했습니다. 자리 표시자로 사용되는 'missing-type'

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

/I(추가 포함 디렉터리) 컴파일러 옵션을 사용하여 해당 디렉터리를 지정하는 경우 컴파일러는 다른 디렉터리에서 형식 라이브러리를 찾을 수 없습니다. 컴파일러가 다른 디렉터리에서 형식 라이브러리를 찾으려면 PATH 환경 변수에 해당 디렉터리를 추가합니다.

기본적으로 이 경고는 오류로 발급됩니다. /W0에서는 C4772를 표시할 수 없습니다.

예시

C4772를 재현하는 데 필요한 첫 번째 형식 라이브러리입니다.

// c4772a.idl
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12b")]
library C4772aLib
{
   [uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c100")]
   enum E_C4772a
   {
      one, two, three
   };
};

C4772를 재현하는 데 필요한 두 번째 형식 라이브러리입니다.

// c4772b.idl
// post-build command: del /f C4772a.tlb
// C4772a.tlb is available when c4772b.tlb is built
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12d")]
library C4772bLib
{
   importlib ("c4772a.tlb");
   [uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12e")]
   struct S_C4772b
   {
      enum E_C4772a e;
   };
};

다음 샘플에서는 C4772를 생성합니다.

// C4772.cpp
// assumes that C4772a.tlb is not available to the compiler
// #import "C4772a.tlb"
#import "C4772b.tlb"   // C4772 uncomment previous line to resolve
                       // and make sure c4772a.tlb is on disk