Compilerwarnung (Ebene 1) C4772

#import auf einen Typ aus einer fehlenden Typbibliothek verwiesen; "Fehlender Typ", der als Platzhalter verwendet wird

Auf eine Typbibliothek wurde mit der #import-Direktive verwiesen. Die Typbibliothek enthielt jedoch einen Verweis auf eine andere Typbibliothek, auf die nicht verwiesen #importwurde. Diese andere TLB-Datei wurde vom Compiler nicht gefunden.

Beachten Sie, dass der Compiler keine Typbibliotheken in verschiedenen Verzeichnissen findet, wenn Sie die Compileroption /I (Zusätzliche Includeverzeichnisse) verwenden, um diese Verzeichnisse anzugeben. Wenn der Compiler Typbibliotheken in verschiedenen Verzeichnissen finden soll, fügen Sie diese Verzeichnisse der PATH-Umgebungsvariable hinzu.

Standardmäßig wird diese Warnung als Fehler ausgegeben. C4772 kann nicht mit /W0 unterdrückt werden.

Beispiel

Dies ist die erste Typbibliothek, die zum Reproduzieren von C4772 erforderlich ist.

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

Dies ist die zweite Typbibliothek, die zum Reproduzieren von C4772 erforderlich ist.

// 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;
   };
};

Im folgenden Beispiel wird C4772 generiert:

// 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