相互に依存する一連の Visual C++ 9 COM コンポーネント プロジェクトがあります。
ComponentA はその typelib を に発行しますComponentA.tlb。ComponentB は にインポートComponentA.tlbしComponentB.idlて公開しComponentB.tlbます。のメソッド シグネチャにComponentB.idlは、 で定義された型のパラメータが含まれていますComponentA.tlb。ComponentA と ComponentB の両方のプロジェクトは問題なくコンパイルされます。
ComponentC #imports both ComponentA.tlband ComponentB.tlbinto 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実行して登録されていることを確認しました。レジストリで指定されたパスに正確に存在します。regtlibComponentA.tlb
問題の原因と解決方法は?