编译器警告(等级 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