是否可以从非托管代码(例如 C++ 或 Delphi)调用托管代码,特别是 IronRuby 或 IronPython?

例如,我们有一个用 Delphi 编写的应用程序,该应用程序正在迁移到 C#.NET。我们希望在新应用程序中提供 Ruby 或 Python 脚本来替换 VBSCRIPT。然而,我们需要在旧的 Delphi 应用程序中提供 Ruby/Python 脚本。是否可以从 Delphi 代码使用 IronRuby/IronPython 提供的托管 dll?

有帮助吗?

解决方案

是的。Delphi for Win32 示例如下: http://interop.management-vcl.com/
演示如何使用 C# 以及 Delphi for Win32 中的 Delphi.NET 程序集。

其他提示

可以在非托管代码中托管 CLR 或 DLR,因为它是 COM 组件。从那时起,您可以加载需要与之交互的托管程序集。

来自 MSDN: 托管公共语言运行时

为什么不嵌入 CPython,它有一个旨在直接从 C/C++ 使用的 API。您失去了多语言优势,但可能获得了简单性。

是的。这是可能的使用 Com 可调用包装器. 。基本上,您可以通过 COM/ActiveX 从 win32 代码(Delphi 或 C++)调用 .Net 类。

我用 不受管理的出口 在 C# 中创建 IronPython 脚本引擎的接口。当您使用 Win32 Delphi 中的 .NET 代码时要小心 - 您必须使用 Set8087CW($133F); 更改浮点异常行为。

你见过吗 九头蛇 来自 RemObjects?我没有这方面的经验,但从介绍来看,它看起来很相关。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top