【问题标题】:Tool for creating .NET wrappers for a COM DLL?为 COM DLL 创建 .NET 包装器的工具?
【发布时间】:2011-01-08 09:45:27
【问题描述】:

是否有任何开源工具可以为 COM DLL 库自动生成 .NET 包装器?

【问题讨论】:

  • 请说出你为什么需要它是开源的。

标签: c# .net com wrapper


【解决方案1】:

在 .NET 中使用 COM 对象不需要包装器。在 Visual Studio 中,右键单击解决方案资源管理器中的项目名称,然后选择“添加引用”。任何已注册的 COM 对象都将在 COM 选项卡中列出。

只有在使用 .NET 程序集时才需要互操作包装器,就好像它们是 COM 对象一样 - 而不是您在问题中描述的相反方式。

【讨论】:

  • 我根据他的“开源”请求假设他没有使用 Visual Studio。
  • 好吧,如果他使用 C#(如他的问题所述,在 .NET 中,而不是在 Mono 中),在任何可用版本中,他都可以访问 VS。 TlbImport 已在别处提及。
【解决方案2】:

您可以尝试使用SWIG,它能够为18 languages 生成包装代码。 this MSDN article 也可能有用。

【讨论】:

    【解决方案3】:

    您可以使用Type library import tool 的命令行工具,它将生成一个互操作程序集供您在项目中使用。

    类型库导入器将在 COM 类型库中找到的类型定义转换为公共语言运行时程序集中的等效定义。

    如果您使用的是 VS.net,您将能够通过 IDE 执行此操作。否则,我相信这个工具是免费提供的(根据您的开源请求)。

    【讨论】:

    • @David 这不一定是真的。使用 TLBImport 中的不同命令行参数,您可以更改生成包装器代码的方式。您还可以使用该工具生成 PIA(主互操作程序集)。仅在 VS 中添加引用是无法做到这一点的。
    【解决方案4】:

    是的,Tlbimp.exe 的源代码可用。从here...下载

    【讨论】:

    • thx,这就是我要找的(我想稍微自定义一下导入过程)
    【解决方案5】:

    tlbimp typelib 导入器呢? MSDN 文档是here

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-29
      • 1970-01-01
      • 1970-01-01
      • 2016-03-27
      相关资源
      最近更新 更多