VC2005 を使用して、ビルドする 3 つのプロジェクトがあります。
- libA (typelib を含み、libA.dll になります): IDL には次の行があります。
library libA { ...
- libB (libA をインポートする typelib を含み、libB.dll になります): IDL には次の行があります。
importlib( "libA " );
- libC (libB をインポート): ソース ファイルの 1 つに
#import <libB.dll>
これ#import <libB.dll>
は、コンパイラによって次の方法で処理されます (ドキュメントによると)。
- %PATH% のディレクトリを検索
- %LIB% の検索ディレクトリ
- 「追加のインクルード パス」を検索します (/I コンパイラ オプション)。
libC をコンパイルすると、cl.exe が明らかに実行可能パスで libA.dll を検出できることがわかります (Filemon.exe を使用)。
VC エラー C4772: 別の依存関係を持つ typelib の #import
ただし、依然として libA 名前空間が見つからず、libA 型へのすべての参照が置き換えられます。__missing_type__
(編集) 一方、デバッグ dll を使用している場合にのみ問題が発生することがわかりました。
この問題を以前に見た人はいますか?そしてそれを解決しましたか?