使用importlib属性时发出MIDL2015警告

MIDL2015 warning when using importlib attribute

本文关键字:MIDL2015 警告 importlib 属性 使用      更新时间:2023-10-16

我有一个遗留的Visual Studio解决方案,其中包含几个项目(已升级到Visual Studio 2013)。其中一个项目生成COM DLL。然后通过importlib属性将此DLL中的TLB导入到另一个项目的IDL文件中。当MIDL编译器尝试编译依赖项目的IDL文件时,它会生成以下警告:

警告MIDL2015:在importlib中加载tlb失败

当我使用TLB文件的完整路径时,它可以工作。

我已经尝试将路径添加到MIDL ->附加包含目录属性,但我认为这仅适用于IDL,头文件和ACF文件(/I开关)。

我也尝试了链接器->附加库目录属性,但这也不起作用。

MIDL在解析importlib属性时使用什么搜索路径?

这是不直观的,midl.exe没有命令行选项来指定要搜索的目录。请注意,midl.exe从未在importlib("stdole2.tlb")中出现问题,该文件存储在c:windowssystem32.

Project + Properties, vc++ Directories,将.tlb的存放路径附加到Executable Directories设置中。当你添加了"c:temp"之后,它应该看起来像"c:temp;$(ExecutablePath)"。

不太确定能赢得很多奖品。将.tlb生成或存储在一个更可预测的路径中,这样您就可以在importlib指令中使用相对路径,从而在一年后减少令人头痛的意外。