使用VC2005,我有3个项目要构建:
- libA(包含类型库,生成 libA.dll):IDL 有一行
library libA { ...
- libB(包含导入 libA 的类型库,生成 libB.dll):IDL 有一行
importlib( "libA " );
- libC(导入 libB):源文件之一包含
#import <libB.dll>
#import <libB.dll>
由编译器按以下方式处理(根据文档):
- 搜索%PATH%的目录
- 搜索%LIB%的目录
- 搜索“其他包含路径”(/I 编译器选项)
编译libC时,我可以看到cl.exe显然能够在可执行路径上找到libA.dll(使用Filemon.exe)
VC 错误 C4772:#import 具有另一个依赖项的 typelib
但是,仍然找不到 libA 命名空间,并且对 libA 类型的所有引用都被替换为 __missing_type__
(编辑)同时,我发现问题仅在使用调试dll时出现。
以前有人遇到过这个问题吗?并解决了?
最佳答案
您是否明确设置了项目的依赖项?换句话说,您是否在 IDE 中设置了解决方案,以便项目 C 依赖于项目 B,项目 B 依赖于项目 A?
关于c++ - 间接 Typelib 未从 Debug dll 中很好地导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/139705/