我有一个在头文件中导入两个 .tlbs 的 c++ 项目。
#import "..\bin\derived.tlb" named_guids raw_interfaces_only
#import "..\bin\base.tlb" named_guids raw_interfaces_only
现在derived.tlb
依赖于base.tlb。这些类中的基类base.tlb
是derived.tlb
基于的。
当我编译时,我得到
“致命错误 c1084:无法读取类型库文件 '..\derived.tlb':加载类型库/DLL 时出错。”
现在它在抱怨,derived.tlb
但问题似乎真的在于找不到base.tlb
。
base.tlb
来自一个C# Com interop
项目。如果我在 c# 项目的构建选项卡中检查“注册 com 互操作”,则此问题在 c++ 项目中消失。但我不想注册它。这建立在一个不应该注册任何东西的构建机器上。所以我.tlb
用一个后期构建步骤来创建tlbexport
.
在正确的tlb
文件夹中创建,但似乎没有注册,在导入时#import
找不到。base.tlb
derived.tlb
我在进程监视器中看到,它正在尝试寻找很多地方,base.tlb
但没有找到等同于..\bin\
.
我该怎么做才能让它在正确的地方搜索?在 c++ 项目的“其他包含目录”中为其添加一个条目似乎没有帮助。