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

标签 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++ 项目的引用进行引用,并在网上搜索了答案,但遗憾的是,到目前为止还没有找到。

最佳答案

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

我的最终答案是定义一个包含目录如下:

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

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

关于c# - C++ 和 C# COM Interop,导入 TLB 错误 C1083,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25141199/

相关文章:

c# - 编辑 GridView 时显示下拉列表

c# - 调用 BeginSaveChanges(null, null) 来执行“即发即忘”异步 DataContext 调用是否安全?

c++ - 模板类的 child 也必须是模板类吗?

c# - 通过 .NET 手动调用 COM 对象的方法

excel - 通过 Excel 2007 调用 Assembly.LoadFrom 失败

c# - 通过 COM 将 C++ 中的复杂对象传递给 C#

c# - Xamarin - 绑定(bind)到 ControlTemplate 中的静态类

c#文件上传的分块传输结合访问ServiceStack中的路由参数

visual-c++ - 在 VC++ 中,#pragma 等效于/O2 编译器选项是什么(优化速度)

c++ - 将 STL 分配器与 STL vector 一起使用