相互に依存する一連の Visual C++ 9 COM コンポーネント プロジェクトがあります。
ComponentA はその typelib を に発行しますComponentA.tlb
。ComponentB は にインポートComponentA.tlb
しComponentB.idl
て公開しComponentB.tlb
ます。のメソッド シグネチャにComponentB.idl
は、 で定義された型のパラメータが含まれていますComponentA.tlb
。ComponentA と ComponentB の両方のプロジェクトは問題なくコンパイルされます。
ComponentC #import
s both ComponentA.tlb
and ComponentB.tlb
into stdafx.h
- これは突然失敗します
error C4772: #import referenced a type from a missing type library;
その後のセット
error C2440: 'return' : cannot convert from '__missing_type__ *' to '__missing_type__'
で定義された型を使用するラッパー用ComponentA.tlb
。通常、それは登録されていないときに発生しますが、regeditでComponentA.tlb
実行して登録されていることを確認しました。レジストリで指定されたパスに正確に存在します。regtlib
ComponentA.tlb
問題の原因と解決方法は?