【问题标题】:Can I Use a .NET DLL in "Delphi 2007 for Win32"?我可以在“Delphi 2007 for Win32”中使用 .NET DLL 吗?
【发布时间】:2009-01-06 15:41:59
【问题描述】:

是否可以在 Delphi 2007 for Win32 中使用 .NET DLL?我尝试以与 ActiveX 组件相同的方式导入 DLL,但它似乎不起作用(组件菜单 -> 导入组件 -> 导入 .NET 程序集。

有可能吗?如果可以,步骤是什么?

【问题讨论】:

    标签: .net delphi delphi-2007


    【解决方案1】:

    如果您想要一篇关于这样做的 Delphi 特定文章:

    Using a .NET Assembly via COM by Jim McKeeth

    完成所有步骤后就很简单了。

    【讨论】:

      【解决方案2】:

      Atozed Software 的 CrossTalk 允许使用 Delphi 的 .NET 程序集,无需使用 COM,无需 DLL 注册,无需修改即可使用原始程序集。

      http://atozed.com/CrossTalk

      【讨论】:

      • CrossTalk 仅适用于 D2009+。不适用于 D2007。
      • 我们的组织正在使用 CrossTalk 和 Delphi 2007,所以我不同意上面的评论。
      【解决方案3】:

      当然可以。你只需要告诉它你的代码的哪些部分应该可以通过这种方式访问​​。您可以通过 ComVisibleAttribute 做到这一点。最快的解决方法是将 [assembly:ComVisible(True)] 放入您的 .dpk 中,这会使所有内容都公开可见。然后你可以使用你尝试导入程序集的方法。

      您还可以进行非托管导出,可以像常规 dll 文件一样调用。

      【讨论】:

        【解决方案4】:

        我认为你不能这样做,直接在同一个应用中混合托管和非托管代码。

        不过,RemObjects 有一个名为 Hydra 的框架,允许您在同一个应用程序中使用 .Net 和 Win32。

        【讨论】:

        • 如果有它的框架,那么显然你可以在同一个应用程序中混合托管和非托管代码。这不是魔术。
        猜你喜欢
        • 2011-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-30
        相关资源
        最近更新 更多