导入.TLB文件会显示“无法打开源文件x.tlh”

时间:2019-09-02 05:14:50

标签: c++ com visual-studio-2019

我正在将VS2010 C ++项目更新为VS2019。

该项目正在导入多个tlb文件,而对于每个tlb文件,VS2019都会给出一个错误,提示它“无法打开.tlh文件的源文件”。

其中之一来自我也已升级的DLL(用C#编写,在VS2019中构建并注册为OK),另外2个是第三方的tlb文件。

这是import语句的示例(在我的头文件中)...

#import "../ExcelInterop/bin/Debug/ExcelInterop.tlb" raw_interfaces_only, raw_native_types, no_namespace, named_guids

从头文件位置开始,相对路径正确。

如何解决此错误,并使VS2019正确处理我的.tlb文件?

1 个答案:

答案 0 :(得分:1)

我找到了一种解决方法。如果您#import XXX.dll而编译器抱怨它“无法打开源文件XXX.tlh”,则只需在#import行上方添加以下行:

#include“ [XXX.tlh的完整路径]”

并注释掉#import行。现在它应该通过编译,因为文件XXX.tlh确实存在。成功后,将您的代码恢复为原始代码。