Bagikan melalui


Compiler Warning (level 1) C4772

#import mereferensikan jenis dari pustaka jenis yang hilang; 'missing-type' yang digunakan sebagai tempat penampung

Pustaka jenis direferensikan dengan direktif #import . Namun, pustaka jenis berisi referensi ke pustaka jenis lain yang tidak direferensikan dengan #import. File .tlb lainnya ini tidak ditemukan oleh pengkompilasi.

Perhatikan bahwa pengkompilasi tidak akan menemukan pustaka jenis di direktori yang berbeda jika Anda menggunakan opsi pengkompilasi /I (Add Include Directories) untuk menentukan direktori tersebut. Jika Anda ingin pengkompilasi menemukan pustaka jenis di direktori yang berbeda, tambahkan direktori tersebut ke variabel lingkungan PATH.

Secara default peringatan ini dikeluarkan sebagai kesalahan. C4772 tidak dapat ditekan dengan /W0.

Contoh

Ini adalah pustaka jenis pertama yang diperlukan untuk mereprodusi C4772.

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

Ini adalah pustaka jenis kedua yang diperlukan untuk mereprodusi 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;
   };
};

Sampel berikut menghasilkan 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