导入 .TLB 文件给出“无法打开源文件 x.tlh”

use*_*169 5 c++ com visual-studio-2019

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

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

其中一个来自我也升级过的 DLL(用 C# 编写,在 VS2019 中构建和注册 OK),另外两个是 3rd 方 tlb 文件。

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

#import "../ExcelInterop/bin/Debug/ExcelInterop.tlb" raw_interfaces_only, raw_native_types, no_namespace, named_guids
Run Code Online (Sandbox Code Playgroud)

相对路径从头文件位置是正确的。

如何修复此错误,并让 VS2019 正确处理我的 .tlb 文件?

小智 4

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

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

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