C ++和C#COM Interop,导入TLB错误C1083

时间:2014-08-05 14:23:25

标签: c# visual-c++ com-interop

我正在使用VS2013,并且拥有一个C ++项目的解决方案,该项目在同一解决方案中引用来自C#。,dll项目的TLB文件。

我的导入声明

#import "Toolbox.Accessor.tlb" named_guids

在C ++项目中找不到TLB。我得到编译时错误error C1083: Cannot open type library file: 'Toolbox.Accessor.tlb': No such file or directory

虽然我完全理解错误信息,但我不知道该怎么做才能将.TLB文件放到适当的位置,以便C ++编译器可以找到它。

我想在编译时执行此操作,以便从C#项目中提取生成的TLB文件,并在我的构建服务器上运行。

我引用了C#Dll项目作为C ++项目的参考,并在网上搜索了答案,但是唉,到目前为止还没有找到。

1 个答案:

答案 0 :(得分:0)

此问题的答案是正确包含“附加包含目录”设置。正如HansPassant在评论中指出的那样......

对我来说,最后的答案是定义一个include目录,如下所示:

$(OutDir)..\..\MyCSharpProject\bin\$(Configuration)

这适用于我的个人开发人员系统和构建服务器,它不会将任何已更改的文件放入原始源文件夹中,而是将它们放在BuildArtifacts文件夹中。