【发布时间】:2020-03-19 05:42:18
【问题描述】:
我们有一个在 Win32 平台中构建的 C++ 程序“A”,它与在任何 CPU 平台中构建的 C# 应用程序“B”连接。 B 应用程序通过一些 COM 对象访问 A,并且“A”程序创建了我从 B 引用的 .tlb 文件。使用 Win32 和 Any CPU 平台,我在使这两个程序连接和工作方面没有问题。
最近“A”程序已更新为在 64x 下工作,并且不再为它构建 Win32 版本。现在,每当我尝试从项目“B”中引用新的 .tlb 文件时,我都会收到错误提示
“无法添加对 ...tlb 的引用。请确保 文件是可访问的,并且它是一个有效的程序集或 COM 组件”
我尝试使用 x86 和 x64 构建“B”项目,但没有任何效果。
我是 COM 对象的新手,所以我对这个主题的了解非常有限。我在 VS 2017 工作。任何帮助将不胜感激。
谢谢。
【问题讨论】:
-
所以基本上你是说你不能从 C# 项目中引用 .tlb 文件?该 .tlb 文件是如何构建的?还要确保您的 A 对象已在 64 位注册表中注册(通过您使用的任何方式)
标签: c# c++ visual-studio x86 com