使用importlib属性时发出MIDL2015警告
MIDL2015 warning when using importlib attribute
我有一个遗留的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指令中使用相对路径,从而在一年后减少令人头痛的意外。
相关文章:
- 警告处理为错误这里有什么问题
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- cppcheck在const std::string[]上引发警告
- GCC对可能有效的代码抛出init list生存期警告
- 如何在BST的这个简单递归实现中消除警告
- 关于std::move的使用,是否有编译警告
- g++ 在某个类成员未初始化时不发出警告
- 如何处理来自核心指南检查器的关于gsl::at的静态分析警告
- 使用typeid警告未使用的变量
- 示例C++项目编译中的警告
- 警告:在函数返回类型 [-Wignore 限定符] 时忽略类型限定符
- 如何修复编译器警告 C6386 和 C6385?
- 返回语句后的代码,没有警告
- 获取隐式转换溢出从无符号到已签名的警告
- 编译器警告:执行到达值返回函数的末尾而不返回值
- 在未链接的部分上生成警告
- 警告 C4552:">>":未使用表达式的结果
- 禁止显示由于常量为零而比较始终为假的警告
- C++ 警告:将新创建的 gsl::owner<> 分配给非所有者
- 使用importlib属性时发出MIDL2015警告