是否可以从非托管代码(如C ++或Delphi)调用托管代码,特别是IronRuby或IronPython?
例如,我们有一个用Delphi编写的应用程序正在转移到C#.NET我们想在我们的新应用程序中提供Ruby或Python脚本来替换VBSCRIPT。 但是,我们需要在旧的Delphi应用程序中提供Ruby / Python脚本。 是否可以使用Delphi代码中IronRuby / IronPython提供的托管dll?
是否可以从非托管代码(如C ++或Delphi)调用托管代码,特别是IronRuby或IronPython?
例如,我们有一个用Delphi编写的应用程序正在转移到C#.NET我们想在我们的新应用程序中提供Ruby或Python脚本来替换VBSCRIPT。 但是,我们需要在旧的Delphi应用程序中提供Ruby / Python脚本。 是否可以使用Delphi代码中IronRuby / IronPython提供的托管dll?
是。 Delphi for Win32示例: http : //interop.managed-vcl.com/
演示如何使用Delphi for Win32的C#和Delphi.NET程序集。
可以在非托管代码中托管CLR或DLR,因为它是COM组件。 从那时起,您可以加载需要与之交互的托管程序集。
从MSDN: 托管公共语言运行时
为什么不嵌入CPython,它有一个直接用于C / C ++的API。 你失去了多语言优势,但可能会变得简单。
我使用Unmanaged Exports在C#中创建了IronPython脚本引擎的接口。 使用Win32 Delphi的.NET代码时要小心 - 你必须使用Set8087CW($133F);
更改浮点异常行为。
是。 这可以使用Com Callable Wrappers 。 基本上,您可以通过win32代码(Delphi或C ++)通过COM / ActiveX调用.Net类。
你看过RemObjects的Hydra吗? 我没有经验,但从介绍来看,它看起来很相关。