コンパイラの警告 (レベル 4) C4336
クロスリファレンス型ライブラリ 'type_lib1' をインポートしてから 'type_lib2' をインポートします
タイプ ライブラリが、#import ディレクティブで参照されていました。 ただし、タイプ ライブラリには、#import
で参照されていない別のタイプ ライブラリへの参照が含まれていました。 この他の .tlb ファイルは、コンパイラが見つけたものです。
ディスク上に以下の 2 つのファイル (midl.exe でコンパイル) から作成された 2 つのタイプ ライブラリがあります:
// c4336a.idl
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12b")]
library c4336aLib
{
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12c")]
enum E_C4336
{
one, two, three
};
};
2 つ目のタイプ ライブラリ:
// 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