【发布时间】:2014-09-05 04:25:27
【问题描述】:
我有一个旧版 Visual Studio 解决方案,其中包含多个项目(已升级到 Visual Studio 2013)。其中一个项目会生成一个 COM DLL。然后通过 importlib 属性将来自该 DLL 的 TLB 导入到另一个项目的 IDL 文件中。当 MIDL 编译器尝试编译依赖项目的 IDL 文件时,它会生成以下警告:
警告 MIDL2015:无法在 importlib 中加载 tlb
当我使用 TLB 文件的完整路径时,它可以工作。
我已尝试将路径添加到 MIDL -> Additional Include Directories 属性,但我认为这仅适用于 IDL、标头和 ACF 文件 (/I switch)。
我也尝试过 Linker -> Additional Library Directories 属性,但这也没有用。
解析 importlib 属性时 MIDL 使用什么搜索路径?
【问题讨论】:
-
我猜你应该使用另一个项目的相对路径 - 你一个接一个地构建它们,不是吗?
-
除非他们根据构建配置转到目录。我想我可以用#ifdefs 解决这个问题(如果它适用于 MIDL 编译器)。在不破坏 RC 文件的情况下,我无法找到一种在 TLB 文件中添加后缀(例如 D 表示调试)的方法。
标签: c++ com visual-studio-2013 midl tlbimp