我正在使用 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/