使用importlib属性时MIDL2015会发出警告

时间:2014-07-15 05:20:05

标签: c++ com visual-studio-2013 midl tlbimp

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

  

警告MIDL2015:无法在importlib中加载tlb

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

我尝试添加MIDL的路径 - >其他包含目录属性但我认为这仅适用于IDL,标头和ACF文件(/I switch)。

我也试过过Linker - >附加的图书馆目录属性,但这也不起作用。

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

1 个答案:

答案 0 :(得分:3)

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

Project + Properties,VC ++目录,将.tlb存储的路径追加到Executable Directories设置。完成后你添加了“c:\ temp”,它应该看起来像“c:\ temp; $(ExecutablePath)”。

不太确定赢得了很多奖项。将.tlb生成或存储在一个更可预测的路径中,这样你就可以在importlib指令中使用相对路径,从而减少了一年之后令人头疼的惊喜。