【问题标题】:Connection between COM exe and a .net dllCOM exe 和 .net dll 之间的连接
【发布时间】:2013-06-18 06:22:16
【问题描述】:

以下是场景:

我们从 VC++ 团队收到了以下文件:

一个.exe a.tlb

我们使用 tlbimp.exe 从 a.tlb 生成一个 .net dll,比如 a.dll。

我们在 .net 应用程序中引用了这个新生成的 dll,一切正常。

我的问题: 虽然我们还没有在任何地方注册这个 com exe (a.exe),但是生成的 .net dll (a.dll) 是如何工作的呢?这种联系是如何建立的?

使用 COM dll,我们曾经注册 COM dll,然后使用 tlbimp 从 COM 生成 .net dll,并用于在我们的项目中引用生成的 .net dll。这我可以理解,因为生成的 .net dll 存储了 COM 的 GUID,并且可以使用系统注册表定位 COM。但是,我无法理解我在开头提到的场景是如何工作的。

提前致谢。

【问题讨论】:

  • 你的意思是你不明白.exe是如何启动的?因为 COM 在您创建此 .exe 服务的 COM 对象时启动它。

标签: .net com typelib


【解决方案1】:

这可以使用 regfree com 来完成,这样可以使用定义程序集身份的清单文件来定位程序集。

看看Registration-Free Activation of COM Components: A Walkthrough

【讨论】:

  • 该链接表示该功能仅在 Win XP 和 Win Server 2003 平台中受支持。 Win 7(32 位和 64 位)怎么样?
  • 没试过,但应该可以,见这里:stackoverflow.com/a/5056472/395659
  • 看来我们没有使用 regfree com,因为我在 VC++ 团队提供的文件中根本看不到任何清单文件。我们刚刚使用 .tlb 文件中的 tlbimp.exe 创建了互操作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-08
  • 2013-05-29
  • 1970-01-01
  • 1970-01-01
  • 2013-03-08
  • 1970-01-01
相关资源
最近更新 更多