5

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

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

4

6 回答 6

8

是的。此处为 Win32 的 Delphi 示例:http: //interop.managed-vcl.com/
展示了如何使用 C# 以及来自 Delphi for Win32 的 Delphi.NET 程序集。

于 2008-09-16T16:51:53.990 回答
6

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

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

于 2008-09-16T16:50:33.133 回答
3

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

于 2009-06-01T13:00:13.020 回答
2

是的。使用Com Callable Wrappers可以做到这一点。基本上,您可以通过 COM/ActiveX 从您的 win32 代码(Delphi 或 C++)调用您的 .Net 类。

于 2008-09-16T16:48:44.637 回答
2

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

于 2010-02-28T13:12:11.530 回答
0

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

于 2008-09-16T18:09:55.360 回答