我有一个c ++项目,它在头文件中导入两个.tlbs。
#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
项目。如果我检查"注册com interop"在c#项目的构建选项卡中,这个问题在c ++项目中消失了。但我不想注册。这是建立在构建机器上的,它不应该在其上注册任何东西。因此,我创建.tlb
并将帖子构建步骤创建为tlbexport
。
tlb
是在正确的文件夹中创建的,但似乎没有注册,#import
在导入base.tlb
时无法找到derived.tlb
。
我在进程监视器中看到,它尝试了很多地方找到base.tlb
,但找不到等同于..\bin\
的正确文件夹。
我可以做些什么来让它在正确的地方搜索?在"其他包含目录"中添加条目。在c ++项目中似乎没什么帮助。