次の方法で共有


コンパイラの警告 (レベル 4) C4337

' typelib2 ' の相互参照タイプライブラリ ' typelib1 ' が自動的にインポートされています

#Import ディレクティブの auto_search 属性により、タイプ ライブラリが暗黙的にインポートされました。

ディスク上に以下の 2 つのファイル (midl.exe でコンパイル) から作成された 2 つのタイプ ライブラリがあります:

// C4337a.idl
[
  uuid(F87070BA-C6D9-405C-A8E4-8CD9CA25C12B)
]
library C4337aLib
{
   [uuid(F87070BA-C6D9-405C-A8E4-8CD9CA25C12C)]
   enum E_C4337a
   {
      one = 0,
      two = 1,
      three = 2
    };
};

次に、2番目の .idl ファイルを

// C4337b.idl
[
   uuid(F87070BA-C6D9-405C-A8E4-8CD9CA25C12D)
]

library C4337bLib
{
   importlib("c4337a.tlb");

   [uuid(F87070BA-C6D9-405C-A8E4-8CD9CA25C12E)]
   struct S_C4337b
   {
      enum E_C4337a e;
   };
};

次の例では C4337が生成されます:

// C4337.cpp
// compile with: /W4 /LD
#import "c4337b.tlb" auto_search   // C4337
// explicitly #import all type libraries to resolve
// #import "C4337a.tlb"
// #import "C4337b.tlb"