Advertencia del compilador (nivel 4) C4336
importar la biblioteca de tipos a la que se hace referencia cruzada “type_lib1” antes de importar “type_lib2”
Se hizo referencia a una biblioteca de tipos con la directiva #import . No obstante, la biblioteca de tipos contenía una referencia a otra biblioteca de tipos a la que no se hacía referencia con #import
. El compilador encontró este otro archivo .tlb.
Dadas dos bibliotecas de tipos en el disco creados a partir de los siguientes dos archivos (compilados con midl.exe):
// c4336a.idl
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12b")]
library c4336aLib
{
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12c")]
enum E_C4336
{
one, two, three
};
};
La segunda biblioteca de tipos:
// 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;
};
};
El ejemplo siguiente genera la advertencia C4336:
// C4336.cpp
// compile with: /W4 /LD
// #import "C4336a.tlb"
#import "C4336b.tlb" // C4336, uncomment previous line to resolve